Увеличить размер MenuItem.Icon 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>

Что бы я ни пытался изменить или изменить размер, я не могу увеличить значки меню ни по высоте пункта меню, ни по размеру шрифта пункта меню. Я хочу, чтобы мои значки были размером не менее 25x25. Я предполагаю, что это размер столбца, который отображается слева, но я не знаю его имени/свойств, поэтому я изменяю его размер. Заранее спасибо! :)


person Cowwando    schedule 16.03.2015    source источник


Ответы (3)


Попробуй это

<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>
person Александр Лузин    schedule 06.07.2021

Это не так просто, как должно быть на самом деле, я сделал это однажды, взломав событие загрузки. вы можете попробовать это или найти здесь

person Muds    schedule 16.03.2015
comment
Я видел этот пост, но он кажется чрезвычайно сложным для чего-то такого простого. В любом случае, если я не найду более простого решения, возможно, мне придется сделать это таким образом, спасибо! И, кстати, мои значки остаются размером примерно 20x16, что бы я с ними ни делал, они не могут стать такими большими. - person Cowwando; 16.03.2015
comment
Это единственное решение, которое я знаю, но если вы найдете что-то лучшее, поделитесь :) - person Muds; 16.03.2015

Столкнувшись с той же проблемой, я закончил с использованием 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>

Теперь у меня, наконец, может быть значок меню, большой, как я хочу, который подходит, как я хочу.

person Andrea Antonangeli    schedule 18.08.2020