Tại sao tính năng này không hoạt động?Nội dung mặc định của Silverlight ContentPresenter Content
Trong generic.xaml cho một điều khiển tùy chỉnh:
Trong phong cách áp dụng cho các điều khiển tùy chỉnh ...
<Setter Property="ChromeContent">
<Setter.Value>
<Grid />
</Setter.Value>
</Setter>
...
Sau đó, trong các mẫu kiểm soát ...
<ContentPresenter Grid.Column="0"
x:Name="ChromeContentPresenter"
Content="{TemplateBinding ChromeContent}" />
Đây là phụ thuộc chuyên nghiệp perty cho ChromeContent ...
public Object ChromeContent
{
get { return (Object)GetValue(ChromeContentProperty); }
set { SetValue(ChromeContentProperty, value); }
}
public static readonly DependencyProperty ChromeContentProperty =
DependencyProperty.Register("ChromeContent", typeof(Object),
typeof(casPopup), null);
Như bạn có thể thấy, cần có bất kỳ đối tượng nào. Tôi đã thử thay đổi nó thành một Lưới, nhưng điều đó không giúp được gì.
Nó ném lỗi này (từ javascript): _Failed để gán cho bất động sản 'System.Windows.Controls.ContentPresenter.Content'
Nhưng kỳ lạ, những điều sau đây sẽ làm việc tốt nếu tôi loại bỏ các Grid từ setter NĐ chỉ văn bản sử dụng:
<Setter Property="ChromeContent" Value="DEFAULT" />
Ngoài ra, điều này sẽ làm việc quá từ phương pháp OnApplyTemplate trong lớp điều khiển:
Grid g = new Grid();
g.Width = 100;
g.Height = 25;
g.Background = new SolidColorBrush(Colors.LightGray);
ChromeContent = g;
tôi đang gặp một thời gian khó khăn under tanding những gì đang ngăn chặn các nội dung mặc định của một mạng lưới, được định nghĩa trong generic.xaml từ làm việc. Có ai có bất kỳ kiến thức về vấn đề này?
Rất cám ơn trước sự giúp đỡ của bạn!
Wow, rất thú vị. Tôi không biết điều này. Một câu hỏi tiếp theo nếu tôi có thể: Làm thế nào tôi sẽ làm điều này với Mẫu Điều khiển? Khi tôi cố gắng đánh dấu mặc định trong ContentPresenter, tôi không thể thêm những thứ như lưới và như vậy. Tôi muốn nội dung của người dùng ghi đè tôi nếu họ cung cấp nội dung đó, vì vậy tôi không chắc chắn nên đi đâu từ đây. – maulkye
OK. Cảm ơn rất nhiều vì sự giúp đỡ của bạn! – maulkye