【问题标题】:Menu item icon added programmatically is not displayed不显示以编程方式添加的菜单项图标
【发布时间】:2017-05-19 22:29:36
【问题描述】:

尝试以编程方式添加选中的图像时,我遇到了显示菜单项图标问题:

private void ObjectsCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    ContextMenu cm = new ContextMenu();

    MenuItem mDiag = new MenuItem();
    mDiag.Icon = new System.Windows.Controls.Image
    {
        Source = (new BitmapImage(new Uri("assets/checked-32-context.png", UriKind.Relative)))
    };
    mDiag.Header = Application.Current.Resources["DiagScreenMenuText"].ToString();

    cm.Items.Add(mDiag);
    cm.PlacementTarget = sender as Button;
    cm.IsOpen = true;
}

checked-32-context.png 图片只在这里使用,不显示:

【问题讨论】:

    标签: c# wpf menuitem


    【解决方案1】:

    与 XAML 相比,需要在后面的代码中指定完整的 Resource File Pack URI

    mDiag.Icon = new System.Windows.Controls.Image
    {
        Source = new BitmapImage(new Uri(
            "pack://application:,,,/assets/checked-32-context.png"))
    };
    

    另请注意,这不是相对 URI。

    【讨论】:

    • 谢谢,我试过了,但没有 UriKind.RelativeOrAbsolute 参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多