绑定到静态资源时出现XamlParseException

时间:2015-08-07 05:49:57

标签: c# wpf xaml resources

manual上有一个WPF自定义授权的示例实现。

在App.xaml中添加资源后:

<Application x:Class="WpfApplication.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
    <Style x:Key="BackgroundStyle" TargetType="TextBlock">
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0, 0" 
                                     EndPoint="0, 0.5" 
                                     SpreadMethod="Reflect">
                    <GradientStop Color="Gray" Offset="1"/>
                    <GradientStop Color="White" Offset="0"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="Margin" Value="2,0,2,0"/>
        <Setter Property="Width" Value="200"/>
    </Style>
</Application.Resources>

在任何窗口中添加此资源:

<Window x:Class="Authorization_WPF.AdminWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="AdminWindow" Height="300" Width="300">
    <Grid>
        <TextBlock Style="{StaticResource BackgroundStyle}" Text="This window is only accessible for admninistrators..."/>
    </Grid>
</Window>

收到错误:

  

处理类型'的异常的第一步   System.Windows.Markup.XamlParseException“PresentationFramework.dll

     

更多信息:“给予价值   “System.Windows.StaticResourceExtension”引发了异常。“:行   数字“6”和字符串“10”中的位置。

如何解决?

1 个答案:

答案 0 :(得分:1)

删除App.xaml中引用附近的注释:

  

.... xaml / presentation此链接是TechNet Wiki的外部链接。它将在新窗口中打开。 “

     

... 2006 / xaml此链接是TechNet Wiki的外部链接。它将在新窗口中打开。 “

必须:

<Application x:Class="Authorization_WPF.AdminWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         StartupUri="AdminWindow.xaml">