no9*_*no9 6 c# wpf icons visual-studio-2010 menuitem
我得到menuItem图标只出现在最后一个menuItem上.如果我只是窥探应用程序,最后一个menuItem在图标中有图像,而如果我调试所有MenuItems似乎在图标中有图像.此外,如果我添加submenuItem一旦我打开子菜单,menuItem上的图标消失,最后一个子菜单获取图标...任何想法?PS:菜单项上的工具提示也不起作用.我使用caliburn微型和流畅的色带控制.
<ControlTemplate x:Key="dropDownButton">
<ef:DropDownButton Header="{Binding DisplayName}"
ItemsSource="{Binding Items}"
LargeIcon="{Binding LargeIconPath}"
cm:Message.Attach="ClickAction()"
ef:KeyTip.Keys="{Binding KeyTip}">
<ef:DropDownButton.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header"
Value="{Binding DisplayName}"/>
<Setter Property="Icon">
<Setter.Value>
<Image Source="{Binding Path=IconPath}"/>
</Setter.Value>
</Setter>
<Setter Property="ItemsSource"
Value="{Binding Items}"/>
<Setter Property="cm:Message.Attach"
Value="ClickAction()"/>
<Setter Property="ef:KeyTip.Keys"
Value="{Binding KeyTip}"/>
<Setter Property="ToolTip">
<Setter.Value>
<ef:ScreenTip Title="{Binding DisplayName}"
HelpTopic="ScreenTip help ..."
Image="{Binding LargeIconPath}"
Text="Text for ScreenTip"/>
</Setter.Value>
</Setter>
</Style>
</ef:DropDownButton.ItemContainerStyle>
<ef:DropDownButton.ToolTip>
<ef:ScreenTip Title="{Binding DisplayName}"
HelpTopic="ScreenTip help ..."
Image="{Binding LargeIconPath}"
Text="Text for ScreenTip"/>
</ef:DropDownButton.ToolTip>
</ef:DropDownButton>
Run Code Online (Sandbox Code Playgroud)
您正在将Icon属性设置为Image控件Style.现在,只Style创建了一个副本,因此只创建了一个副本Image.现在,任何控件一次只能有一个父级.因此,当它被分配到最后时MenuItem,它将从之前的MenuItem控件中删除.要解决此问题,请使用Templates.
而不是设置Header属性,设置HeaderTemplate:
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0"
Source="{Binding Path=IconPath}" />
<TextBlock Grid.Column="1"
Text="{Binding DisplayName}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
Run Code Online (Sandbox Code Playgroud)
我不确定您正在使用的控件工具包公开了哪些属性.但是,我确信他们必须拥有模板属性.
执行此操作后,您无需Icon在样式中设置属性.
| 归档时间: |
|
| 查看次数: |
6268 次 |
| 最近记录: |