2015-04-18 48 views
0

的用户界面的变化考虑这个示例代码如何让Windows Store应用

 <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,也改变了按钮的背景颜色,

在我的源代码中,我有很多的网格,很多的帆布里面有很多hyberlinkbuttons和滑块......等等,很多颜色,边缘“这个按钮的位置”以及当用户通过选择另一个接口改变它们时属性和内容需要改变

我试过使多个网格“ParentGrid1”和“ParentGrid2”开始更改每个网格的可见性,并且复制和粘贴大量代码“意大利面条代码”,我如何允许用户更改界面完全通过点击具有良好书面代码的按钮?

回答

0

为了说明,我修改您的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> 

并没有在后面的代码如下:

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(); 
    } 

前两个(类型的BitmapImage)被用于表示不同的背景图像。第三个是将用于设置网格的背景属性的画笔。每一个都在构造函数中初始化。 如果当前背景图像是第一个图像,SetBackground()方法会简单切换到第二个图像,否则切换到第二个图像。

相关问题