Установить стиль элемента управления программно в Silverlight 4? - PullRequest
2 голосов
/ 16 мая 2011

Я новичок в Silverlight, но ничего не нашел об этом, когда гуглял.

У меня есть кнопка, которую я пытаюсь установить стиль программно.У меня есть стиль, определенный в файле XAML, и я хочу перенести стиль в C #, чтобы я мог динамически создать кнопку и назначить ей этот стиль.Пока что это то, что я пытаюсь:

button.Style = (Style)Resources["CloseButtonStyle"];

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

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Вы предполагаете, что ваше свойство Resources в текущем объекте является тем, которое содержит определенный стиль. Тем не менее, я предполагаю, учитывая симптомы вашей проблемы, что CloseButtonStyle фактически определяется дальше по иерархии управления.

Вместо этого вам нужно пересечь иерархию управления , пока не найдете ресурс (или, если вы знаете объект, который его определяет, просто обратитесь непосредственно к этому объекту). К сожалению, Silverlight не включает FindResource вызов, как WPF, но не так сложно реализовать свой собственный.

2 голосов
/ 16 мая 2011

Я могу позвонить button1.Style = (Style)Resources["NonExistentKey"];, и из-за этого у моей кнопки вообще нет стиля, но, возможно, ресурс не найден, исключение не будет.

У вас есть прямой доступсвойство Resources, но действительно ли стиль находится в словаре непосредственных ресурсов вашего Window / UserControl / что бы у вас ни было?

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