none
如何在代码中使用Xaml中定义的ResourceDictionary中的资源 RRS feed

  • 问题

  • 比如有一个 Item.xaml 里面的内容如下: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <DataTemplate x:Key="Info_DataTemplate"> <Grid> </Grid> </DataTemplate> </ResourceDictionary> 然后我在代码中如何使用这些资源? 我用 ResourceDictionary ResourceDic = new ResourceDictionary(); Application.LoadComponent(ResourceDic, new Uri("/HSModelBase;component/Themes/Item.xaml", UriKind.Relative)); 来加载的时候 总是处错误:AG_E_PARSER_BAD_TYPE 错误 地点都是在 [Line: 2 Position: 5]. 这个会是什么原因呢?LoadComponent 函数不能使用? 还有其他的方法可以用吗?
    2011年5月11日 7:47

答案

  • 1. 在App.xaml中定义使用的ResourceDictionary文件为Resources/Styles/DefaultStyle.xam

    <!--Application Resources-->
        <Application.Resources>       

            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
           <ResourceDictionary Source="Resources/Styles/DefaultStyle.xaml"/>
          </ResourceDictionary.MergedDictionaries>      
         </ResourceDictionary>

        </Application.Resources>

     

    2. 在Item.xaml中使用ResourceDictionary文件Resources/Styles/DefaultStyle.xam中声明的style。

        下面的代码中设置Button的Style为ButtonZoomInStyle,ButtonZoomInStyle定义在Resources/Styles/DefaultStyle.xam中。

    <Button x:Name="ButtonZoomIn"
                            Style="{StaticResource ButtonZoomInStyle}"
                            HorizontalAlignment="Left" VerticalAlignment="Top"
                            Height="56" Width="56" Margin="8,180,0,0"
                            Click="ButtonZoomIn_Click" />


    Cedar
    2011年5月12日 2:52
    版主