【发布时间】:2021-09-09 16:44:01
【问题描述】:
我在我的应用中实现了一个浅色/深色主题,用户可以按下浅色或深色按钮,所有应用颜色都会改变。我通过将 SolidColorBrush 绑定到每个元素的背景和前景来做到这一点,例如
在视图模型中:
private SolidColorBrush fontColour;
public SolidColorBrush FontColour
{
get { return fontColour; }
set
{
fontColour = value;
OnPropertyChanged(nameof(FontColour));
}
}
在 xaml 中:
<TextBox Text="{Binding EventLog}"
Foreground="{Binding FontColour}"
Background="{Binding ColourTheme5}"/>
这按预期工作。但是,当我尝试在 TextBox.Resources 中做同样的事情时,绑定根本不起作用,例如
(TextControlForegroundPointerOver 的绑定不起作用)
<TextBox Text="{Binding EventLog}"
Foreground="{Binding FontColour}"
Background="{Binding ColourTheme5}">
<TextBox.Resources>
<SolidColorBrush x:Key="TextControlForegroundPointerOver"
Color="{Binding FontColour}"
Opacity="1" />
</TextBox.Resources>
</TextBox>
【问题讨论】:
标签: c# xaml data-binding uwp