2017-11-17 2 views
0

Ich entwickle eine UWP App. Ich möchte einen Radiobutton haben, der den Hintergrund der Hauptseite und der Einstellungsseite ändert, wenn er angeklickt wird. Der Code Optionsfeld ist unten in Settings.xaml.csButton zum Ändern der Hintergrundfarbe

private void BGRadioButtonGreen_Checked(object sender, RoutedEventArgs e) 
    { 
     MainPage.Background = Brushes.Red??; 
    } 

In diesem Beispiel ein Optionsfeld auszuwählen Ich versuche, und haben sie die Einstellungen und main Hintergrund ändern, um Green.However es nicht scheint arbeite. Vielen Dank im Voraus

Antwort

0

Sie können es tun Hintergrundfarbe des Root-Grids festlegen. Wie im Beispiel unten, würde nach der aktivierten Optionsschaltfläche die Farbe zu rot wechseln. Das sollte das sein, wonach Sie suchen.

<Page 
x:Class="Test.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:Test" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" Background="Blue"> 

<Grid x:Name="MainGrid" Background="Green"> 
    <StackPanel> 
     <RadioButton Content="Red" Tag="Green" Checked="RadioButton_Checked"/> 
    </StackPanel> 
</Grid> 

private void RadioButton_Checked(object sender, RoutedEventArgs e) 
{ 
    MainGrid.Background = new SolidColorBrush(Windows.UI.Colors.Red); 
} 
0

Für Hintergrundfarbe ändern, wie @ColdMorningLight erwähnt, sollten Sie einen SolidColorBrush Wert auf die Background Eigenschaft festgelegt.

Da Sie die MainPage Hintergrundfarbe von Settings Seite zu ändern versuchen, die in verschiedenen Seiten ist, müssen Sie auch zunächst die aktuelle MainPage Instanz erhalten und dann den Hintergrund der Seite gesetzt. Zum Beispiel:

MainPage mainPage; 
public SettingPage() 
{ 
    this.InitializeComponent(); 
    mainPage = (Window.Current.Content as Frame).Content as MainPage; 
} 

private void radchangecolor_Checked(object sender, RoutedEventArgs e) 
{ 
    mainPage.Background = new SolidColorBrush(Windows.UI.Colors.Green); 
} 

beachten ist, dass ich die Hintergrundfarbe der Seite, nur Sie die Auswirkungen sehen kann, wenn die Wurzel Panel Hintergrundfarbe transparent ist (der Standardwert sind Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"). Andernfalls müssen Sie die Hintergrundfarbe des Hintergrunds ändern. Zum Beispiel wird MainPage wie folgt wirksam:

<Page 
    ... 
    mc:Ignorable="d" > 
    <StackPanel> 
     <Frame x:Name="frame" Height="200" Width="300" Background="Azure"></Frame> 
     <Button x:Name="btntest" Click="btntest_Click" Content="test"></Button> 
    </StackPanel> 
</Page> 
Verwandte Themen