当我将按钮放在工具栏上时,它的样式会自动更改以匹配工具栏元素。
我从一个 ToggleButton 派生了我自己的类,现在如果我在工具栏上实例化一个,它看起来又像普通按钮了。如何访问 WPF 的内置模板,这样我就不必从头开始重新创建整个模板?
显然 ToolBar 具有为某些控件定义的资源,包括Button
和ToggleButton
。这种样式,您可以在 ToolBar 的元数据中找到它们,应用于其目标类型的每个控件。所以你可以得到样式并自己应用它:
<ToolBar>
<my:CustomToggleButton
Height="100" Width="100"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Content="Press me!" />
</ToolBar>
如果您有很多按钮并且不想为每个按钮设置样式,则可以在自定义控件的代码隐藏中设置样式。
您可以style
像这样在自定义切换按钮上应用它,使其看起来像工具栏切换按钮 -
<local:LockableToggleButton LockToggle="True" Content="Test"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"/>
您可以使用和/或访问OnApplyTemplate
覆盖中的更改模板。VisualTreeHelper
LogicalTreeHeler