WPF 应用程序中来自配置 XML 的 Dynamic MaterialDesign PackIconKind
Dynamic MaterialDesign PackIconKind from config XML in WPF application
我正在设计一个 WPF 桌面应用程序,其中 UI 设计完全由配置文件驱动。我有使用 MaterialDesign PackIcons 的 MenuItems。我在每个菜单项的配置文件中提到了 PackIcons。例如
<MenuItem Name="Menu1">
....
<Icon Type="MaterialDesign">NewBox</Icon>
</MenuItem>
<MenuItem Name="Menu2">
....
<Icon Type="MaterialDesign">ExitToApp</Icon>
</MenuItem>
现在我想在设计菜单项时使用这个图标名称。 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
或 Enum.TryParse
方法将 string
值转换为 PackIconKind
,例如:
var kind = (MaterialDesignThemes.Wpf.PackIconKind)Enum
.Parse(typeof(MaterialDesignThemes.Wpf.PackIconKind), "About");
我正在设计一个 WPF 桌面应用程序,其中 UI 设计完全由配置文件驱动。我有使用 MaterialDesign PackIcons 的 MenuItems。我在每个菜单项的配置文件中提到了 PackIcons。例如
<MenuItem Name="Menu1">
....
<Icon Type="MaterialDesign">NewBox</Icon>
</MenuItem>
<MenuItem Name="Menu2">
....
<Icon Type="MaterialDesign">ExitToApp</Icon>
</MenuItem>
现在我想在设计菜单项时使用这个图标名称。 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
或 Enum.TryParse
方法将 string
值转换为 PackIconKind
,例如:
var kind = (MaterialDesignThemes.Wpf.PackIconKind)Enum
.Parse(typeof(MaterialDesignThemes.Wpf.PackIconKind), "About");