【发布时间】:2012-02-17 01:46:26
【问题描述】:
当 ItemsOptionListType="CheckList" 时有没有办法改变复选框的样式 在 RadTreeView 内?
【问题讨论】:
标签: c# silverlight treeview telerik radtreeview
当 ItemsOptionListType="CheckList" 时有没有办法改变复选框的样式 在 RadTreeView 内?
【问题讨论】:
标签: c# silverlight treeview telerik radtreeview
我能想到几种方法,但遗憾的是,这两种方法都不是特别容易。
一种方法是使用 Blend 或类似工具来获取 RadTreeViewItem 类的模板。 RadTreeViewItem 类及其模板位于 Telerik.Windows.Controls.Navigation 程序集中。复制此模板并修改此模板中的 CheckBox 以根据需要自定义其外观。
要使用该模板,请将 ControlTemplate 和 Style 添加到 XAML 页面的 <UserControl.Resources> 元素,如下所示:
<UserControl.Resources>
<ControlTemplate x:Key="myRadTreeViewItemTemplate" TargetType="telerik:RadTreeViewItem">
<!-- modified template goes here... -->
</ControlTemplate>
<Style TargetType="telerik:RadTreeViewItem">
<Setter Property="Template" Value={StaticResource myRadTreeViewItemTemplate}" />
</Style>
</UserControl.Resources>
这应该将修改后的模板应用到同一 XAML 文件中的任何 RadTreeViews。
请注意,我们必须使用implicit style(即没有x:Key),因为似乎没有其他方法可以告诉RadTreeView 将给定样式应用于其子项。
或者,您也可以modify a built-in theme。这种方法还可以更改应用程序中其他 Telerik 控件中使用的 CheckBoxes 的样式,例如在 RadGridView 中的 GridViewCheckBoxColumn 中。
EDIT:如果您希望在 RadTreeView 中默认使用 CheckBox 的模板, 您可以在 Telerik.Windows.Controls 程序集中的 Themes\Office\Black\System.Windows.Controls.xaml 中找到它。这假设您使用的是“Office Black”主题;如果您使用不同的 Telerik 主题,请调整此文件的路径。
【讨论】: