首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >menuitem.icon中的wpf可变图像

menuitem.icon中的wpf可变图像
EN

Stack Overflow用户
提问于 2018-12-10 15:52:14
回答 1查看 150关注 0票数 0

我正试图在我的代码中实现一个语言菜单,但是我的语言按钮显示的是活动语言的正确图像,却不能正常工作。

我正在尝试的代码是不正确的。但我不知道如何改变它,它是有效的:

代码语言:javascript
复制
<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>

我用来作为数据触发器的语言类给出了实际的语言,我想根据这个值设置一个图像。我不想做这个的C#代码,因为我认为wpf可以通过数据绑定来做到这一点,这是最干净的方法。

我知道这里的样式值不正确。setter属性也是错误的。至少xaml设计者告诉我这一点。目前,我正在尝试学习xaml代码的原理,是的,我认为对于这个问题,我并不了解它们。;)所以,请耐心等待。

提前感谢!

编辑:我修改了xaml-designer不会杀死我的代码,但图像没有显示。它显示的是"System.Windows.Style“。

EN

回答 1

Stack Overflow用户

发布于 2018-12-10 17:04:06

@nosale你给出了正确的提示。将menuitem.icon更改为menuitem.style后,一切工作正常!

代码语言:javascript
复制
<MenuItem Click="LangMouseLeftButtonUp" ContextMenuOpening="LangMouseRightButtonUp" x:Name="LangImageIcon">
    <MenuItem.Style>
        <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.Style>
    <MenuItem.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Deutsch" Click="MenuLanguageDE_Click"/>
            <MenuItem Header="Englisch" Click="MenuLanguageEN_Click"/>
        </ContextMenu>
    </MenuItem.ContextMenu>
</MenuItem>

谢谢你的帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53701482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档