C# 如何允许用户更改Windows应用商店应用程序的界面

C# 如何允许用户更改Windows应用商店应用程序的界面,c#,xaml,windows-store-apps,C#,Xaml,Windows Store Apps,考虑这个示例代码 <Grid Name="MyParentGrid"> <Grid.Background> <ImageBrush ImageSource="Test.jpg"/> </Grid.Background> <HyperlinkButton Name="Play" Click="Play_Click" Background="Bla

考虑这个示例代码

        <Grid Name="MyParentGrid">

        <Grid.Background>
            <ImageBrush ImageSource="Test.jpg"/>
        </Grid.Background>

            <HyperlinkButton Name="Play" Click="Play_Click" Background="Black"/>
            <HyperlinkButton Name="Personalize"Click="Personalize_Click" Background="Black"/>
            <HyperlinkButton Name="LeaderBoard" Click="LeaderBoard_Click" Background="Black"/>

        </Grid>
我现在只有三个按钮在一个格子里,背景是一张照片

现在,如果我想让用户在单击按钮时查看另一个背景而不是Test.jpg,还可以更改按钮的背景颜色

在我的源代码中,我有很多网格,里面有很多画布,还有很多HyberLink按钮和滑块。。。等等,当用户通过选择另一个界面进行更改时,需要更改此按钮的许多颜色、边距、位置以及属性和内容


我尝试创建多个网格ParentGrid1和ParentGrid2,然后开始更改每个网格的可见性,以及大量复制和粘贴代码意大利面代码,我如何允许用户通过单击具有良好编写代码的按钮来完全更改界面???

为了说明,我修改了您的xaml:

<Grid Name="MyParentGrid">
        <Grid.Background>
            <ImageBrush ImageSource="ms-appx:///Assets/Test.jpg"/>
        </Grid.Background>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <HyperlinkButton Name="Play" Click="Play_Click" Background="Black" Content="Play"/>
            <HyperlinkButton Name="Personalize" Click="Personalize_Click" Background="Black" Content="Personalize"/>
            <HyperlinkButton Name="LeaderBoard" Click="LeaderBoard_Click" Background="Black" Content="Leaderboard"/>
        </StackPanel>
    </Grid>
前两种类型的位图图像用于表示不同的背景图像。第三个是笔刷,用于设置网格的背景属性。每个都在构造函数中初始化。 如果当前背景图像是第一个图像,则SetBackground方法仅切换到第二个图像,否则切换到第二个图像

    private static BitmapImage first;
    private static BitmapImage second;
    private static ImageBrush backBrush;

    public MainPage()
    {
        this.InitializeComponent();
        first = new BitmapImage(new Uri("ms-appx:///Assets/Test.jpg"));
        second = new BitmapImage(new Uri("ms-appx:///Assets/NewBackground.jpg"));

        backBrush = new ImageBrush();
        SetBackground();
    }

    private void SetBackground()
    {
        if(backBrush.ImageSource == first)
        {
            backBrush.ImageSource = second;
        }
        else
        {
            backBrush.ImageSource = first;
        }

        MyParentGrid.Background = backBrush;
    }

    private void Personalize_Click(object sender, RoutedEventArgs e)
    {
        SetBackground();
    }