WinPhone 8 RadTextBox - 无法设置PhoneForegroundBrush颜色

时间:2013-11-11 12:04:30

标签: windows-phone-8 textbox telerik foreground

我正在使用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开发的新手,请尽我所能帮助我。

由于

1 个答案:

答案 0 :(得分:0)

而不是使用pHONEfOREGROUNDbRUSH,我使用PhoneAccentBrush。这对文本框起了作用。

TextBox的焦点背景将是Phone的前景色,如果文本也用同一种颜色书写,那么它就不可见了。因此,我将前景色更改为PhoneAccentBrush值,这可确保在所有情况下文本都可见。

它就是诀窍。

希望这有助于某人。