我正在做一个Windows 8应用程序(METRO UI / XAML / C#),我在设置栏中有一个拨动开关。我想让这个开关实时地在“光”和“暗”主题之间进行选择。 我已经在我的StandardStyles.xaml上创建了主题:
<!-- LIGHT THEME -->
<Style x:Key="LightTheme" TargetType="Panel">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<GradientStop Color="#cdeae5" Offset="0"/>
<GradientStop Color="#c0dabd" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="ChildrenTransitions">
<Setter.Value>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
<!-- DARK THEME -->
<Style x:Key="DarkTheme" TargetType="Panel">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<GradientStop Color="#fea569" Offset="0"/>
<GradientStop Color="#f63f3b" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="ChildrenTransitions">
<Setter.Value>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
如何使用切换开关实时选择它们? 我认为这是这样的:
private void ThemeSwitch_Toggled(object sender, RoutedEventArgs e)
{
if (ThemeSwitch.IsOn)
{
// LIGHT THEME
// TEXT SHOWING "Light Theme"
}
else
{
// DARK THEME
// TEXT SHOWING "Dark Theme"
}
}
但那是我能走得最远的。
提前致谢。这是我第一次用C#和XAML编程。
答案 0 :(得分:1)
我似乎无法实时更改主题:
注意应用启动时会应用主题。在应用运行时,您无法更改主题。
http://msdn.microsoft.com/en-us/library/windows/apps/hh986965.aspx
嗯,太糟糕了。
答案 1 :(得分:0)
使用下面的c#代码
grdMain.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 123, 183, 42));