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

Cod*_*tor 4 xaml windows-phone-8

我想使用外部文件来自定义我的应用程序的样式,但它不起作用.我正在按照这个步骤进行操作,但是当我执行项目时,异常属于:

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Joh*_*wen 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>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的全面回答,但是这样,使用属性x:Key的标签ResourceDictionary是不可接受的.删除此属性一切正常.最好的祝福! (2认同)