XAML解析异常:属性{StaticResource PhoneAccentBrush}值超出范围

时间:2011-02-15 16:05:34

标签: xaml windows-phone-7 xamlparseexception

我遇到异常问题,无法找到解决方法。 属性{StaticResource PhoneAccentBrush}值超出范围。

System.Windows.Application.LoadComponent(this, new System.Uri("/PAK_phone_side;component/Views/About/App_info.xaml", System.UriKind.Relative));
        this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
        this.TitlePanel = ((System.Windows.Controls.StackPanel)(this.FindName("TitlePanel")));
        this.ApplicationTitle = ((System.Windows.Controls.TextBlock)(this.FindName("ApplicationTitle")));
        this.PageTitle = ((System.Windows.Controls.TextBlock)(this.FindName("PageTitle")));
        this.ContentPanel = ((System.Windows.Controls.Grid)(this.FindName("ContentPanel")));
        this.textBlock1 = ((System.Windows.Controls.TextBlock)(this.FindName("textBlock1")));

在Windows Phone中,当我点击App_info_Button按钮时,System.Windows.Apllication.LoadComponent上发生异常。在App_info.g.i.cs中,上面的代码来自该文件。

这是App_info.xaml上的内容面板定义

 <phone:PhoneApplicationPage 
x:Class="windowsphoneapp.App_info"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
shell:SystemTray.IsVisible="True">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="ApplicationTitle" Text="PAK " Style="{StaticResource PhoneTextNormalStyle}"/>
        <TextBlock x:Name="PageTitle" Text="App Infos" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <TextBlock Height="311" HorizontalAlignment="Center" Margin="25,32,0,0" Name="textBlock1" Text="This Application is designed ...." 
                   VerticalAlignment="Center" Width="425" Style="{StaticResource PhoneAccentBrush}" />
    </Grid>
</Grid>    
</phone:PhoneApplicationPage>

这是堆栈跟踪

在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator)    在PAK_phone_side.App_info.InitializeComponent()    在PAK_phone_side.App_info..ctor()    在System.Reflection.RuntimeConstructorInfo.InternalInvoke(RuntimeConstructorInfo rtci,BindingFlags invokeAttr,Binder binder,Object parameters,CultureInfo culture,Boolean isBinderDefault,Assembly caller,Boolean verifyAccess,StackCrawlMark&amp; stackMark)    at System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj,BindingFlags invokeAttr,Binder binder,Object [] parameters,CultureInfo culture,StackCrawlMark&amp; stackMark)    在System.Activator.InternalCreateInstance(Type type,Boolean nonPublic,StackCrawlMark&amp; stackMark)    在System.Activator.CreateInstance(类型类型)    在System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread(AsyncCallback userCallback,PageResourceContentLoaderAsyncResult result)    在System.Windows.Navigation.PageResourceContentLoader。&lt;&gt; c_ DisplayClass4.b _0(Object args)    在System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi,Object obj,BindingFlags invokeAttr,Binder binder,Object parameters,CultureInfo culture,Boolean isBinderDefault,Assembly caller,Boolean verifyAccess,StackCrawlMark&amp; stackMark)    在System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化,StackCrawlMark&amp; stackMark)    在System.Reflection.MethodBase.Invoke(Object obj,Object []参数)    在System.Delegate.DynamicInvokeOne(Object [] args)    在System.MulticastDelegate.DynamicInvokeImpl(Object [] args)    在System.Delegate.DynamicInvoke(Object [] args)    在System.Windows.Threading.DispatcherOperation.Invoke()    在System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)    在System.Windows.Threading.Dispatcher.OnInvoke(对象上下文)    在System.Windows.Hosting.CallbackCookie.Invoke(Object [] args)    在System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object [] args)    在System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle,Int32 nParamCount,ScriptParam [] pParams,ScriptParam&amp; pResult)

1 个答案:

答案 0 :(得分:2)

问题出在这一行:

<TextBlock Height="311" HorizontalAlignment="Center" 
           Margin="25,32,0,0" Name="textBlock1" 
           Text="This Application is designed ...." 
           VerticalAlignment="Center" Width="425" 
           Style="{StaticResource PhoneAccentBrush}" />

您正在尝试将画笔资源值设置为样式,这是导致异常的原因。您可以尝试将XAML更改为:

<TextBlock Height="311" HorizontalAlignment="Center" 
           Margin="25,32,0,0" Name="textBlock1" 
           Text="This Application is designed ...." 
           VerticalAlignment="Center" Width="425" 
           Style="{StaticResource PhoneTextNormalStyle}"
           Foreground="{StaticResource PhoneAccentBrush}" />