图像无法显示在裸菜单中,但不能显示在网格的其余部分中

问题描述 投票:0回答:1

我有以下 wpf 网格块。我有一个名为 truc.PNG 的图像,这是一个尺寸为 16x16 像素的小文件图像。我可以在图像块中看到它,但不能在菜单栏项目之一中看到它。我尝试了此处找到的各种解决方案(不仅如此),但图像从未出现,即使空间似乎已被占用。 我尝试过使用 stackpannel,它已在旧的 stackoverflow 帖子中进行了验证,我尝试过使用 viewblock,我也尝试过使用 c# 中的类属性,但每次都是相同的结果,空间似乎被占用但图标看不见。

<Menu Grid.Row="0">
    <MenuItem Header="Icon">
        <MenuItem Header="Sous icone">
            <MenuItem.Icon>
                <Image Source="LesImages/truc.PNG"/>
            </MenuItem.Icon>
        </MenuItem>
    </MenuItem>
    <MenuItem Header="Export" />
    <MenuItem Header="New record" />
</Menu>

<Image x:Name="ImBox" Source="LesImages/truc.png" HorizontalAlignment="Left" Height="63" Margin="82,39,0,0" VerticalAlignment="Top" Width="119" Grid.RowSpan="2"/>

尝试过 Stackpanel 解决方案:

<MenuItem>
    <MenuItem.Header>
    <StackPanel>
            <Image Width="20" Height="20" Source="LesImages/truc.PNG" />
        <ContentPresenter Content="Reports" />
    </StackPanel>
</MenuItem.Header>
</MenuItem>

编辑:我将图像添加为 .csproj 中的项目资源,而无需更改代码,它解决了问题。

  <ItemGroup>
    <Resource Include="LesImages\truc.PNG" />
  </ItemGroup>
c# wpf menu menuitem imageicon
1个回答
0
投票

从您的代码来看,图像看起来应该正确显示,但可能是缩放问题。尝试设置图像的拉伸属性以确保它适合图标空间。下面的代码对我有用:

    <Grid>
        <Menu>
            <MenuItem Header="MenuItem Hdr">
                <MenuItem.Icon>
                    <Image Source="/Images/2023-11-27_11h20_54.png"
                           Stretch="Uniform"/>
                </MenuItem.Icon>
            </MenuItem>
            
        </Menu>
        <Image Margin="359,104,203,79"
               Source="/Images/2023-11-27_11h20_54.png"
               Stretch="Uniform"
               RenderTransformOrigin="-0.275,0.209" />

    </Grid>

Resulting WPF Form

© www.soinside.com 2019 - 2024. All rights reserved.