我正在使用Telerik控制其RadTextBox为Win Phone 8 SDK开发应用程序。我需要改变不同主题的前景色 - 暗/亮。
在我的xml中:
<phone:PhoneApplicationPage xmlns:Controls="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Primitives"
x:Class="PanicMe.OptionPages.ProfilePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerikCore="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Core"
xmlns:controls="clr-namespace:PanicMe.Controls"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True">
<Controls:RadTextBox Grid.Row="0" HorizontalAlignment="Stretch"
Text="{Binding FirstName, Mode=TwoWay}" ClearButtonVisibility="Visible"
Watermark="First Name" />
在我的xml.cs中:
public ProfilePage()
{
Resources.Remove("PhoneForegroundBrush");
Resources.Add("PhoneForegroundBrush", System.Windows.Media.Colors.Red);
// THIS BELOW LINE SHOWS ERROR
//((System.Windows.Media.SolidColorBrush)Resources["PhoneForegroundBrush"]).Color = System.Windows.Media.Colors.Magenta;
InitializeComponent();
Resources.Remove("PhoneForegroundBrush");
Resources.Add("PhoneForegroundBrush", System.Windows.Media.Colors.Red);
}
我尝试了不同的方法来设置PhoneForegroundBrush的值,但我没有看到输出结果有任何差异。我面临的问题是暗/亮主题。在所有情况下,如何设置1种颜色以使其可用(文本框中的文本可见)。
我是WinPhone8开发的新手,请尽我所能帮助我。
由于
答案 0 :(得分:0)
而不是使用pHONEfOREGROUNDbRUSH,我使用PhoneAccentBrush。这对文本框起了作用。
TextBox的焦点背景将是Phone的前景色,如果文本也用同一种颜色书写,那么它就不可见了。因此,我将前景色更改为PhoneAccentBrush值,这可确保在所有情况下文本都可见。
它就是诀窍。
希望这有助于某人。