我对WPF场景相对较新,并且在理解如何在控件之间重用样式时遇到问题。
我的示例情况是这样,我正在制作一个需要切换按钮的控件。我希望这个ToggleButton看起来像TreeViewItem上的'expand'按钮。如何将TreeViewItem的按钮样式应用于我自己的按钮?
从我的搜索中我感觉如果没有复制XAML是不可能的,但我无法证明为什么有人会制作一个有限的UI框架。
提前致谢。
答案 0 :(得分:2)
我不确定是否有办法从某些东西中检索默认样式/模板并将其应用到XAML中的另一个控件,尽管您可以在代码中使用它。虽然这会带来一个问题,你只是想让按钮成为模板的一部分而且更容易(更不用说更清晰了)只是为了写一个新的风格而不是乱砍来获得模板的那一部分。
重新设置按钮的问题是,当按下它们时,它们将返回到默认的按下外观,与它们悬停时相同。你想要做的是改变按钮的ControlTemplate。
当我开始使用WPF时,我发现this tutorial 对这个过程非常有用。
我建议您获取ShowMeTheTemplate的副本,以便您可以访问控件的大多数默认模板,因为这样可以节省大量基本工作,并让您深入了解控件的工作原理。
当您创建控件模板(或任何样式/模板)时,您可以将其存储在资源字典中,并通过使用StaticResource标记扩展从相关属性引用它来将其应用于控件。
示例:
(在资源字典中,例如App.Resources):
<Style x:Key="myStyle" TargetType="Button">
<Setter Property="Width" Value="70" />
</Style>
用于按钮:
<Button Style="{StaticResource myStyle}" />
希望这有助于您入门。