Примененный стиль в WPF игнорирует свойства - PullRequest
0 голосов
/ 02 июня 2010

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

Вот код, который я использую для создания стиля. Достаточно просто.

Style borderStyle = new Style(typeof(Border));

borderStyle.Setters.Add(new Setter(Border.BorderBrushProperty, Brushes.Black));
borderStyle.Setters.Add(new Setter(Border.BorderThicknessProperty, new Thickness(4)));
borderStyle.Setters.Add(new Setter(Border.OpacityProperty, 1.0));

return borderStyle;

Но когда я устанавливаю стиль, свойство непрозрачности остается в своем первоначальном значении 0,7. Я также попытался установить фон рамки для кисти, которую я создал. Это тоже игнорируется.

Спасибо за ваши идеи.

1 Ответ

1 голос
/ 02 июня 2010

Вы упоминаете настройку по умолчанию 0,7. Свойства, установленные явно, имеют приоритет над свойствами стиля. Удалите явно установленное свойство, и ваш стиль должен быть использован.

То же самое касается фоновой кисти, если она явно установлена ​​в элементе, значения стиля будут переопределены.

Смотрите здесь список приоритетов: http://msdn.microsoft.com/en-us/library/ms743230.aspx#listing

...