Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF中使用单独的活动/禁用图像创建工具栏按钮的最佳方法是什么?_Wpf_Wpf Controls - Fatal编程技术网

在WPF中使用单独的活动/禁用图像创建工具栏按钮的最佳方法是什么?

在WPF中使用单独的活动/禁用图像创建工具栏按钮的最佳方法是什么?,wpf,wpf-controls,Wpf,Wpf Controls,我正在使用WPF应用程序的工具栏。我们正在使用的图标集对于正常、悬停和禁用状态有单独的图标,我想使用它们。我想知道做这件事最简单的方法是什么 我的第一个想法是创建一个用户控件“ImageButton”,其属性为NormalImage、ActiveImage、DisabledImage,其中包含IsMouseOver和IsEnabled所需的触发器。这是可行的,但不幸的是,会导致按钮失去工具栏按钮样式,即它们具有标准按钮边框,鼠标上方没有蓝色背景,并且间距太近。据我所知,这是因为WPF的工具栏控件

我正在使用WPF应用程序的工具栏。我们正在使用的图标集对于正常、悬停和禁用状态有单独的图标,我想使用它们。我想知道做这件事最简单的方法是什么

我的第一个想法是创建一个用户控件“ImageButton”,其属性为NormalImage、ActiveImage、DisabledImage,其中包含IsMouseOver和IsEnabled所需的触发器。这是可行的,但不幸的是,会导致按钮失去工具栏按钮样式,即它们具有标准按钮边框,鼠标上方没有蓝色背景,并且间距太近。据我所知,这是因为WPF的工具栏控件覆盖了子按钮元素的样式,并且无法重新设置按钮的样式,因为它们位于父ImageButton中


有没有人有什么建议让它发挥作用?我对WPF还很陌生,所以我可能只是以一种倒退的方式来处理这个问题。

您可以根据。例如:

<Style TargetType="Button" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Setter Property="MinHeight" Value="40"/>
</Style>


虽然这不能回答您的问题,但我始终不希望工具栏上有单独的悬停和禁用图像。特别是使用WPF,您可以获得很好的效果,而无需对每个图像进行三次管理(并保持同步),而且您的资源文件也小得多。非常感谢。因为我不需要自定义按钮的外观,只需要更改图像,甚至更改元素就可以了。