2013-09-25 3 views
4

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

Однако в одном случае кажется, что стиль позже переопределяется кодом, к которому у нас нет доступа. Это означает, что любые изменения, которые я применяю к стилю, не будут иметь эффекта, потому что в какой-то момент времени код войдет и снова изменит его.

Вопрос: Можно ли каким-либо образом пометить стиль как незанятый (так сказать), так что независимо от того, что происходит в коде, некоторые значения свойств останутся неизменными?

+0

Я не думаю, что его можно ... Не забывайте, что XAML фразы в код во время выполнения. – nrofis

+0

Согласен. Я также не думаю, что это возможно, но, как всегда, было бы хорошо знать наверняка. –

+1

Я думаю, что единственный способ (кодирование) - иметь какой-то обработчик события OnStyleChanged и отменить изменение оттуда. И если вы получите обработчик событий такого типа, вы можете построить DependencyProperty, чтобы просто пометить его в XAML – Bolu

ответ

0

Может быть, это должен быть комментарий, но я не имею права писать комментарии.

Если вы создали стиль в коде, вы исследовали метод Style.Seal(), чтобы установить свойство Style.IsSealed?

http://msdn.microsoft.com/en-us/library/system.windows.style.issealed.aspx

http://msdn.microsoft.com/en-us/library/system.windows.style.seal.aspx

+0

Я предполагаю, что мы могли бы использовать это как обходной путь. Теперь мы нашли другое решение, которое позволяет нам достичь желаемого результата, хотя это взлом. Мы надеемся получить доступ к некоторому событию StyleChanged в следующей версии и затем очистить код. –

Смежные вопросы