在控制初始化期间访问资源

时间:2010-07-20 16:16:44

标签: wpf silverlight

假设我们有以下控制定义


<ctrl:ChildWindow x:Class="Control.Editor"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  xmlns:ctrl="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
                  xmlns:local="clr-namespace:Control"
                  Width="400" Height="300"
                  local:AttachedProperties.DialogResult="{Binding Path=DialogResult}"
                  Title="{Binding Path=Caption}" Style="{StaticResource Title}" DataContext="{Binding}" HasCloseButton="False">
    <ctrl:ChildWindow.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Control;component/Resources/BaseAppearance.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </ctrl:ChildWindow.Resources>
</ctrl:ChildWindow>

问题是无法设置根控件上的样式,因为未加载ResourceDictionary

当我无法访问StaticResource Title类时,如何在控件初始化期间访问App?如果我能访问它,我也不确定它是否可能。


此致

2 个答案:

答案 0 :(得分:1)

我建议您访问您的资源并在您的控件的.Loaded()事件中进行工作。

编辑:第二个想法......我想我知道你现在正在做什么......你的App.xaml类中有一个资源集,但你想在你的控制中访问它。

解决问题的简单方法是将其设置为DynamicResource而不是......但这种性能较差。

属性选项卡中App.xaml上的BuildAction设置为什么? 如果它是ApplicationDefinition ...那么您应该能够像现在一样访问您的资源。

答案 1 :(得分:1)