自定义风格CheckList RadTreeView
当 ItemsOptionListType="CheckList" 时,有没有办法更改复选框的样式 在 RadTreeView 内?
Is there a way to change the style of checkboxes when the ItemsOptionListType="CheckList"
inside a RadTreeView?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我能想到有几种方法可以做到这一点,但遗憾的是它们都不是特别容易。
一种方法是使用 Blend 或类似工具来获取 RadTreeViewItem 类的模板。 RadTreeViewItem 类及其模板位于 Telerik.Windows.Controls.Navigation 程序集中。复制此模板并修改此模板中的
CheckBox
以根据需要自定义其外观。要使用该模板,请将
ControlTemplate
和Style
添加到 XAML 页面的
元素,如下所示:然后应将修改后的模板应用到同一 XAML 文件中的任何 RadTreeView。
请注意,我们必须使用隐式样式(即一个没有
x:Key
),因为似乎没有其他方法可以告诉RadTreeView
将给定的样式应用于其子项。或者,您可以修改内置主题。此方法还可以更改应用程序中其他 Telerik 控件中使用的复选框的样式,例如 RadGridView 中的 GridViewCheckBoxColumn 中。
编辑:如果您想要默认在 RadTreeView 中使用的 CheckBox 模板,
您可以在 Telerik.Windows.Controls 程序集中的 Themes\Office\Black\System.Windows.Controls.xaml 中找到它。这假设您使用的是“Office Black”主题;如果您使用不同的 Telerik 主题,请调整此文件的路径。
There are a couple of ways of doing this that I can think of, but sadly neither of them is particularly easy.
One way is to use Blend or a similar tool to obtain the template for the RadTreeViewItem class. The RadTreeViewItem class and its template are in the Telerik.Windows.Controls.Navigation assembly. Take a copy of this template and modify the
CheckBox
within this template to customise its appearance as you wish.To use the template, add a
ControlTemplate
and aStyle
to the<UserControl.Resources>
element of a XAML page, as follows:This should then apply the modified template to any RadTreeViews in the same XAML file.
Note that we have to use an implicit style (i.e. one without an
x:Key
), since there seems to be no other way to tell aRadTreeView
to apply a given style to its child items.Alternatively, you can modify a built-in theme. This approach could also change the styles of CheckBoxes used within other Telerik controls in your application, for example in a GridViewCheckBoxColumn within a RadGridView.
EDIT: if you want the template for the CheckBox as used in the RadTreeView by default,
you'll find it in Themes\Office\Black\System.Windows.Controls.xaml within the Telerik.Windows.Controls assembly. This assumes you're using the 'Office Black' theme; adjust the path of this file if you're using a different Telerik theme.