Wpf 如何绑定到按钮的TextElement.前台?
我有以下按钮:Wpf 如何绑定到按钮的TextElement.前台?,wpf,binding,Wpf,Binding,我有以下按钮: <Button> <Path Stroke="???" Data="M0,5 H10 M5,5 V10Z" /> </Button> 我得到的是System.IO.FileNotFoundException引起的XamlParseException。它说找不到程序集RibbonControlsLibrary。什么是我的错?还有别的办法吗 关于,Yggdrasil您应该使用RelativeSource={RelativeSour
<Button>
<Path Stroke="???" Data="M0,5 H10 M5,5 V10Z" />
</Button>
我得到的是System.IO.FileNotFoundException引起的XamlParseException。它说找不到程序集RibbonControlsLibrary。什么是我的错?还有别的办法吗
关于,Yggdrasil您应该使用
RelativeSource={RelativeSource AncestorType=Button}
而不是RelativeSource={RelativeSource TemplatedParent}
RelativeSource={relativesourceself}
也可以工作
我认为您所做的工作不起作用的原因是因为路径不在按钮的模板中。这是它的内容。我可以回答我自己的问题 首先,我需要的是:
{Binding Path=(TextElement.Foreground), RelativeSource={RelativeSource AncestorType=ContentPresenter}}
但我也有例外。我发现我的项目在某种程度上引用了RibbonControlsLibrary。我删除了这个,没有例外。有趣的是,如果我使用显式颜色,我也不例外
我发现的另一件事是,在Windows 7标准主题中,我可以使用{Binding Foreground,ElementName=button}
,因为它是这样实现的:
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
在Windows 8中,这不起作用,因为实施已更改为:
<Trigger Property="IsEnabled" Value="false">
[...]
<Setter Property="TextElement.Foreground" Value="{StaticResource Button.Disabled.Foreground}" TargetName="contentPresenter" />
</Trigger>
[...]
您好,Yggdrasil。如果您删除此绑定并将笔划设置为某种颜色,您不会遇到此异常?
<Trigger Property="IsEnabled" Value="false">
[...]
<Setter Property="TextElement.Foreground" Value="{StaticResource Button.Disabled.Foreground}" TargetName="contentPresenter" />
</Trigger>