WPF文本菜单绑定菜单项的图标到菜单项头
问题描述:
请解释为什么不到风度工作..WPF文本菜单绑定菜单项的图标到菜单项头
<ContextMenu>
<MenuItem>
<MenuItem.Header>
<TextBox Name="tbColor" Text="Black" />
</MenuItem.Header>
<MenuItem.Icon>
<TextBox Text="{Binding ElementName=tbColor,Path=Text}" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
我尝试了好几种方法,但一无所获。 RelativeSource
不工作..
编辑..从另一个控制工程结合..
<DataGrid Foreground="{Binding ElementName=tbColor,Path=Text,Converter={StaticResource textToBrushConverter}}">
<DataGrid.ContextMenu>
<ContextMenu>....
答
得到了原代码的工作这样的..丑,但我自己的理智..
<MenuItem.Header>
<TextBox Name="tbColor" Text="Black" TextChanged="tbColor_TextChanged" />
</MenuItem.Header>
<MenuItem.Icon>
<Rectangle Name="rectangleColor" Width="20" Height="20" />
</MenuItem.Icon>
而且在后面的代码..
private void tbColor_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
rectangleColor.Fill = new SolidColorBrush((Color) ColorConverter.ConvertFromString(((TextBox) sender).Text));
}
catch (Exception)
{
return;
}
}
答
您的控件的可视化树之外的上下文菜单无法找到元素名称。 尝试 -
{结合PlacementTarget,的RelativeSource = {的RelativeSource FindAncestor, AncestorType = {X:类型文本菜单}}}”
+1
之前尝试过不同的变化,但我没有工作。你也不应该能够在同一个控件中绑定。 – jrb 2012-04-19 13:58:13
为什么你认为你可以添加一个'TextBox'到一个需要'Image'的属性? – slugster 2012-04-19 12:47:47
我不希望有图像。你可以放置你想要的任何控制。在原始代码中,根据您使用转换器在标题文本框中输入的内容,将会有一个矩形更改颜色。 – jrb 2012-04-19 12:52:03