从App.xaml以编程方式设置样式

本文关键字:方式 设置 样式 编程 App xaml | 更新日期: 2023-09-27 18:19:47

我用代码创建了一个新的日历控件

  Calendar calendar = new Calendar();

我想用我的app.xaml 中定义的样式设置它的CalendarDayButtonStyle

  calendar.CalendarDayButtonStyle = ...

但我不知道该怎么做。此外,我无法访问"FindResource",这是我见过其他人使用的。(我在一个ICommand中,所以我不能访问这个方法)还有其他方法吗?

从App.xaml以编程方式设置样式

您可以使用Application.Current.FindResource

这是非常直接的。。。

在应用程序中实例化资源字典

App.xaml

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/AssemplyOfResource;Component/Resource.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在代码中检索您的风格

CodeBehind

  object resource = Application.Current.FindResource("KeyName");
  if (resource != null && resource.GetType() == typeof(Style))
      calendar.Style = (Style)resource;

你会看到的大多数人只是使用Application.Current.FindResource("KeyName")并转换它,这很好,除非图形设计师决定使用ResourceDictionaries。这将导致应用程序不会崩溃。

如果你需要一些特定的卡兰达示例访问:

MSDN Magazine自定义新的WPF日历控件