WPF样式重用

WPF样式重用,wpf,Wpf,我对WPF场景比较陌生,在理解控件之间如何重用样式时遇到了问题 我的示例情况是,我正在制作一个需要切换按钮的控件。我希望这个切换按钮看起来像TreeViewItem上的“展开”按钮。如何将TreeViewItem的按钮样式应用于我自己的按钮 从我的搜索中,我感觉不复制XAML是不可能的,但我无法向自己证明为什么有人会让UI框架如此有限 提前感谢。我不确定是否有办法从某个控件中检索默认样式/模板并将其应用到XAML中的另一个控件,尽管您可以在代码中找到它。尽管这会带来一个问题,即您只想获得模板中的

我对WPF场景比较陌生,在理解控件之间如何重用样式时遇到了问题

我的示例情况是,我正在制作一个需要切换按钮的控件。我希望这个切换按钮看起来像TreeViewItem上的“展开”按钮。如何将TreeViewItem的按钮样式应用于我自己的按钮

从我的搜索中,我感觉不复制XAML是不可能的,但我无法向自己证明为什么有人会让UI框架如此有限


提前感谢。

我不确定是否有办法从某个控件中检索默认样式/模板并将其应用到XAML中的另一个控件,尽管您可以在代码中找到它。尽管这会带来一个问题,即您只想获得模板中的按钮部分,而编写一种新的样式(更不用说更干净)要比只获取模板中的该部分更容易(更不用说更干净)

“重新设置样式”按钮的问题在于,当按下按钮时,它们将返回其默认按下的外观,悬停时也是如此。您要做的是更改按钮的ControlTemplate

当我开始在WPF工作时,我发现 这是一个非常有用的过程介绍

我建议您获取ShowMeTheTemplate的副本,以便访问大多数控件的默认模板,因为这将节省大量的基础工作,并让您深入了解控件的工作方式

创建控件模板(或任何样式/模板)后,可以将其存储在资源字典中,并通过使用StaticResource标记扩展从相关属性引用它来将其应用于控件

例如:

(在资源字典中,例如App.Resources):


在按钮中使用:

<Button Style="{StaticResource myStyle}" />


希望这能帮助您开始。

谢谢您的回答!关于showmetemplate的提示很有用。我觉得很奇怪,在一个为MVVM设计的环境中,他们甚至没有考虑分离样式和标记。。。
<Button Style="{StaticResource myStyle}" />