c# - WPF 应用程序中配置 XML 的动态 MaterialDesign PackIconKind
问题描述
我正在设计一个 WPF 桌面应用程序,其中 UI 设计完全由配置文件驱动。我有使用 MaterialDesign PackIcons 的 MenuItems。我在每个菜单项的配置文件中都提到了 PackIcons。例如
<MenuItem Name="Menu1">
....
<Icon Type="MaterialDesign">NewBox</Icon>
</MenuItem>
<MenuItem Name="Menu2">
....
<Icon Type="MaterialDesign">ExitToApp</Icon>
</MenuItem>
现在我想在设计 MenuItems 时使用这个图标名称。在 XAML 中,我知道如何做到这一点
<MenuItem Header="New" Click="MenuItem_NewClick" >
<MenuItem.Icon>
<materialDesign:PackIcon Kind="NewBox" />
</MenuItem.Icon>
</MenuItem>
但是当我试图通过后面的代码来做到这一点时,我面临着挑战。通常,如果我们修复了图标,我们可以通过以下代码行来做到这一点
MenuItem.Icon = new MaterialDesignThemes.Wpf.PackIcon { Kind = MaterialDesignThemes.Wpf.PackIconKind.NewBox};
有人可以告诉我如何通过后面的代码使用动态图标来帮助我吗?
谢谢
解决方案
您可以使用Enum.Parse
orEnum.TryParse
方法将string
值转换为 a PackIconKind
,例如:
var kind = (MaterialDesignThemes.Wpf.PackIconKind)Enum
.Parse(typeof(MaterialDesignThemes.Wpf.PackIconKind), "About");
推荐阅读
- uml - 如何在 UML2 类图的抽象类中表达具体方法?
- python - python中是否有相当于R的GGally::ggpairs函数?
- css - 元素下方的图标是否存在?否则让它紧贴在顶部?
- java - 我想在 MainActivity 中添加 SpreadsheetWebService 而不从其他类调用它
- javascript - 如何从服务器加载最新版本的 ReactJS 应用程序
- java - 如何将选定的文件从 JFileChooser 传输到单击时应用代码的 JButton?
- android - 在所需时间自动启动 Android 应用程序并自动点击
- sql - 使用光标计算给定日期之前的订单数量的过程
- node.js - 尽管在 environment.d.ts 中,打字稿仍将 process.env 变量识别为未定义
- python - python) 读取图像数组