Изменить цвет элемента управления по умолчанию - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть текстовое поле.При возникновении ошибки я устанавливаю borderbrush на новый SolidColorBrush (Colors.Red).Когда ошибка исправлена, я хочу переключиться на цвет границы текстового поля по умолчанию.Я делаю это в коде позади не xaml.

Однако это зависит от системы.Я заметил, что есть что-то вроде

SystemColor.ActiveControl и т. Д. Должен ли я использовать их, и если да, какой из них является границей текстового поля по умолчанию?

Также я заметил, что есть что-то вроде Textbox.borderbrushproperty.defaultmetadata.defaultvalue, с которым мне не удалось работать.

Есть идеи, как переключиться на пограничную кисть по умолчанию?спасибо.

Ответы [ 4 ]

2 голосов
/ 22 февраля 2012

Вы должны сделать это в коде позади? Если нет, вы можете использовать Trigger, который будет изменять цвет границы только при соблюдении условия запуска.

<Style x:Key="MyTextBoxStyle" TargetType="{x:Type TextBox}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=MyUserControl, Path=HasErrors}">
            <Setter Property="BorderBrush" Value="Red" />
        </DataTrigger>
    </Style.Triggers>
</Style>
1 голос
/ 22 февраля 2012

Почему бы просто не сохранить начальное значение при запуске и использовать его?Вы должны иметь возможность использовать системные цвета, но если вы когда-нибудь измените цвет по умолчанию, он продолжит работать.

private Color _defBtnColor;
public MyUserControl()
{
    _defBtnColor = someButton.Foreground;
}  

private void SetBackToDefault()
{
    someButton.Foreground = _defBtnColor;
}
0 голосов
/ 11 апреля 2012

Может быть, я немного опоздал на вечеринку, но я думаю, что вы спрашиваете, как изменить цвет на системный по умолчанию элемент управления?

someControl.BackColor = SystemColors.Control;

или

sslEditMode.BackColor = SystemColors.ButtonFace;
0 голосов
/ 22 февраля 2012

Попробуйте:

control.BackColor = Color.FromKnownColor(KnownColor.Window);

Для получения дополнительной информации см. Color.FromKnownColor на MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...