如果是ReadOnly,则设置TextBox的背景颜色

时间:2014-04-02 04:15:35

标签: c# .net silverlight textbox

当Silverlight 5中的TextBox设置为ReadOnly = true时,背景变为灰色。

我需要它保持白色。

TextBox已启用但设置为只读。它应该是只读的。

在只读模式下,有没有办法让TextBox的背景变成任何颜色?

我试图像这样扩展控件:

public partial class MyTextBox: TextBox
{

    private Brush highlightBrush = new SolidColorBrush(Colors.Blue);
    private Brush forgoundBrush = new SolidColorBrush(Colors.Black);
    private Brush backgroundBrush = new SolidColorBrush(Colors.White);

    public BulletListItem()
    {
        this.applyStyle();
    }


    private void applyStyle()
    {
        this.FontSize = 26;
        this.Foreground =forgoundBrush;
        this.IsEnabled = true;
        this.IsReadOnly = true;
        this.BorderBrush = backgroundBrush;
        this.Background = backgroundBrush;
        this.SelectionBackground = backgroundBrush;
        this.TextWrapping = System.Windows.TextWrapping.Wrap;
    }
}

更新

我找到了一个黑客来做这个,如果有人有更好的解决方案,我仍然会感激,但这就是我的做法。

  1. 在Blend中编辑Silverlight程序
  2. 右键单击TextBox和编辑样式(创建副本)
  3. 再次保存并打开Visual Studio
  4. 从Blend提供的已创建模板中找到样式。
  5. 找到具有
  6. 的代码行

    <Border x:Name="ReadOnlyVisualElement" Background="#5EC9C9C9" Opacity="0"/>

    并替换为

    <Border x:Name="ReadOnlyVisualElement" Background="White" Opacity="0"/>

0 个答案:

没有答案