0

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

谢谢

4

1 回答 1

0

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

TextBox 在焦点上的背景将是电话的前景色,如果文本也以相同的颜色书写,那么它将不可见。因此,我将前景色更改为 PhoneAccentBrush 值,以确保在所有情况下文本都是可见的。

它成功了。

希望这可以帮助某人。

于 2013-11-12T10:55:13.280 回答