使用单独的.xaml文件来使用WP8应用程序中的资源

时间:2013-02-12 02:45:43

标签: xaml windows-phone-8

我想使用外部文件在我的应用上自定义样式,但它不起作用。我遵循这个step-by-step但是当我执行项目时,异常属于:

  

System.Windows.ni.dll中出现'System.Windows.Markup.XamlParseException'类型的第一次机会异常

我的XAML代码:

的App.xaml:

<Application.Resources>
    <local:LocalizedStrings xmlns:local="clr-namespace:App1" x:Key="LocalizedStrings"/>
    <ResourceDictionary x:Key="myDict">
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

Resources.xaml:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="TextBox" x:Key="MyTextBox">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderThickness" Value="0.5"/>
        <Setter Property="BorderBrush" Value="Gray"/>
        <Setter Property="Opacity" Value="0.5"/>
        <Setter Property="Foreground" Value="Red"/>
    </Style>

</ResourceDictionary>

1 个答案:

答案 0 :(得分:5)

尝试在您正在创建的ResourceDictionary内移动本地资源声明并分配给Application.Resources属性:

<Application.Resources>
    <ResourceDictionary x:Key="myDict">
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources.xaml"/>
        </ResourceDictionary.MergedDictionaries>

        <local:LocalizedStrings xmlns:local="clr-namespace:App1" x:Key="LocalizedStrings"/>
        <!-- other resources in here -->
    </ResourceDictionary>
</Application.Resources>