Question

As the title says I get a XamlParseException when I try to run the app. I have only just started learning xaml and am currently following a tutorial from a book called Windows Phone 8 game development here is the exception it is giving me.

System.Windows.Markup.XamlParseException occurred HResult=-2146233087 Message=The property 'System.Windows.Controls.Panel.Children' is set more than once. [Line: 53 Position: 74] Source=System.Windows LineNumber=53 LinePosition=74 StackTrace: at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) at SpaceAim3D.Views.MenuPage.InitializeComponent() at SpaceAim3D.Views.MenuPage..ctor() InnerException:

here is my code

 public partial class MenuPage : PhoneApplicationPage
{
    private Dictionary<String, String> m_urls = new Dictionary<string, string>();

    public MenuPage()
    {
        InitializeComponent();
        m_urls["play"] = "/Views/GamePage.xaml";
        m_urls["ranks"] = "/Views/RanksPage.xaml";
        m_urls["map"] = "/Views/MapPage.xaml";
        m_urls["world"] = "/Views/WorldPage.xaml";
        m_urls["help"] = "/Views/HelpPage.xaml";
        m_urls["web"] = "/Views/WebPage.xaml";
        m_urls["settings"] = "/Views/SettingsPage.xaml";
    }

    //This is a common event handler used by all entities on menu page
    private void BrdPage_Tap(object sender, GestureEventArgs e)
    {
        //To get the tag name we case the sender object and get the tag as a string
        String page = ((Border)sender).Tag as String;
        NavigationService.Navigate(new Uri(m_urls[page], UriKind.Relative));
    }
}

and here is my Xaml code

    <phone:PhoneApplicationPage
    x:Class="SpaceAim3D.Views.MenuPage"
    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="Landscape" Orientation="Landscape"
    mc:Ignorable="d"
    shell:SystemTray.IsVisible="True">

    <phone:PhoneApplicationPage.Resources>
        <Style TargetType="Border">
            <Setter Property="CornerRadius" Value="125" />
            <Setter Property="Background">
                <Setter.Value>
                    <ImageBrush ImageSource="/Assets/asteroid.png" />
                </Setter.Value>
            </Setter>
        </Style>

        <Style TargetType="TextBlock" x:Key="ButtonText">
            <Setter Property="FontSize" Value="40"/>
            <Setter Property="FontWeight" Value="Bold" />
            <Setter Property="Foreground" Value="Black" />
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>

    </phone:PhoneApplicationPage.Resources>

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Grid.Column="0"
                   Style="{StaticResource PhoneTextTitle1Style}">
                   Space Aim <Bold>3D</Bold>
        </TextBlock>

        <Grid.Background>
            <ImageBrush ImageSource="/Assets/background.png" />
        </Grid.Background>

        <Border Grid.Row="1" Margin="10,5,536,194" Tap="BrdPage_Tap" Tag="play">
            <TextBlock Style="{StaticResource ButtonText}" Text="PLAY!"/>
        </Border>
        <Border Margin="255,74,291,221" Grid.RowSpan="2" Tap="BrdPage_Tap" Tag="ranks">
            <TextBlock Style="{StaticResource ButtonText}" Text="RANKS!" Margin="12,66,10,66" Width="160"/>
        </Border>
        <Border Grid.Row="1" Margin="12,162,534,37" Tap="BrdPage_Tap" Tag="map">
            <TextBlock Style="{StaticResource ButtonText}" Text="MAP"/>
        </Border>
        <Border Grid.Row="1" Margin="238,189,308,10" Tap="BrdPage_Tap" Tag="world">
            <TextBlock Style="{StaticResource ButtonText}" Text="WORLD"/>
        </Border>
        <Border Grid.Row="1" Margin="420,76,126,123" Tap="BrdPage_Tap" Tag="web">
            <TextBlock Style="{StaticResource ButtonText}" Text="WEB"/>
        </Border>
        <Border Grid.Row="1" Margin="556,148,-10,51" Tap="BrdPage_Tap" Tag="help">
            <TextBlock Style="{StaticResource ButtonText}" Text="HELP"/>
        </Border>
        <Border Margin="503,54,12,241" Grid.RowSpan="2" Tap="BrdPage_Tap" Tag="settings">
            <TextBlock Style="{StaticResource ButtonText}" Text="SETTINGS"/>
        </Border>
    </Grid>
</phone:PhoneApplicationPage>
Was it helpful?

Solution

I moved all the xaml code with border tags above the grid.background and it worked

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top