我正在尝试在我的代码中实现一个语言菜单,但是我没有让它工作,我的语言按钮显示了活动语言的正确图像 .
我正在尝试的代码是不正确的 . 但我不知道如何改变它的工作原理:
<MenuItem Click="LangMouseLeftButtonUp" ContextMenuOpening="LangMouseRightButtonUp" x:Name="LangImageIcon">
<MenuItem.Icon>
<Style TargetType="MenuItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Language.ActualLanguage}" Value="EN">
<Setter Property="Icon">
<Setter.Value>
<Image Source="Resources/United_Kingdom.png" Height="20" />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Language.ActualLanguage}" Value="DE">
<Setter Property="Icon">
<Setter.Value>
<Image Source="Resources/Germany.png" Height="20" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</MenuItem.Icon>
<MenuItem.ContextMenu>
<ContextMenu>
<MenuItem Header="Deutsch" Click="MenuLanguageDE_Click"/>
<MenuItem Header="Englisch" Click="MenuLanguageEN_Click"/>
</ContextMenu>
</MenuItem.ContextMenu>
</MenuItem>
我用作数据触发器的语言类给了我实际的langeuage,我想根据这个值设置一个图像 . 我不想这是C#代码,因为我认为wpf可以通过数据绑定来做到这一点,这是最干净的方法 .
我知道这里的风格值不正确 . setter属性也是错误的 . 至少xaml设计师告诉我这个 . 目前我尝试学习xaml代码的原理,是的,我认为对于这个问题,我不知道它们 . ;)所以,请耐心等待 .
提前致谢!
编辑:我需要xaml-designer不会杀死我的代码,但不会显示图像 . 它显示“System.Windows.Style” .
1 回答
天哪,我是如此亲密 .
@nosale你给出了正确的提示 . 将menuitem.icon更改为menuitem.style之后一切正常!
谢谢您的帮助!!!