增加MenuItem.Icon WPF的大小

时间:2015-03-16 15:45:33

标签: c# wpf

我有以下的斗争,我没有在互联网上的任何地方找到解决方案。 我在WPF应用程序中有以下菜单

<Menu  Margin="0,0,95,207" FontSize="14">
        <Menu.Resources>
            <Style TargetType="Image">
                <Setter Property="Height" Value="20" />
                <Setter Property="Width" Value="20" />
                <Setter Property="Stretch" Value="Fill"/>
            </Style>
        </Menu.Resources>
        <MenuItem Header="_File" Height="35" Width="55" ScrollViewer.VerticalScrollBarVisibility="Disabled" Grid.IsSharedSizeScope="True" Padding="5,0" ScrollViewer.CanContentScroll="True" UseLayoutRounding="False">
            <MenuItem.Icon>
                <Image Source="pack://siteoforigin:,,,/Resources/text-icon.png" />
            </MenuItem.Icon>
            <MenuItem Header="_Text" Margin="0">
                <MenuItem.Icon>
                    <Image Source="pack://siteoforigin:,,,/Resources/Power - Shut Down.png"  Margin="0,0,0,0"/>
                </MenuItem.Icon>
            </MenuItem>
        </MenuItem>
    </Menu>

无论我尝试修改或调整大小,我都无法使菜单的图标更大,也不能通过menuitem Height,也不能通过menuitem font-size。我希望我的图标至少为25x25。我猜它的左边是列的大小,但我不知道它的名字/属性,所以我调整了它的大小。 提前致谢! :)

3 个答案:

答案 0 :(得分:1)

试试这个

<MenuItem Height="32" Header="_Text" Margin="0">
   <MenuItem.Icon>
      <Image Source="pack://siteoforigin:,,,/Resources/Power - Shut Down.png" Margin="-2,-2,-2,-2"/>//use negative margin abd item height
   </MenuItem.Icon>
</MenuItem>

答案 1 :(得分:0)

它不是那么简单,我做了一次,通过黑客加载事件。您可以尝试或Find it here

答案 2 :(得分:0)

遇到同样的问题,我最后使用了包含图像和标签的StackPanel。避免使用MenuItem.Icon是一种解脱,因为它太复杂,无法在需要时进行自定义。

使用标签使我可以使用下划线之类的键盘快捷键。

        <MenuItem x:Name="mnuMyMenu" BorderThickness="2,0" Padding="4,0" Foreground="Yellow" ToolTip="A nice tooltip.">
            <MenuItem.Header>
                <StackPanel Orientation="Horizontal">
                    <Image Width="32" Height="32" Source="pack://siteoforigin:,,,/Resources/text-icon.png" />
                    <Label Content="_MyMenu with a big icon" BorderThickness="2,0" Padding="4,0" Foreground="Red" >
                    </Label>
                </StackPanel>
            </MenuItem.Header>
        </MenuItem>

现在我终于可以按照自己的意愿设置一个大菜单图标了。