У меня есть несколько стилей в Window.Resources, которые я применяю к нескольким кнопкам с C#. Затем мне нужно изменить стиль, но сначала мне нужно знать, каков текущий стиль, который применяется к кнопке, которую я хочу изменить. Я не могу найти способ получить название стиля с помощью кнопки!Получить название стиля кнопки
ответ
Это хороший вопрос (+1).
Это только моя мысль, которая может быть не очень точной. Я сомневаюсь, что имеет смысл получить стиль для управления пользовательским интерфейсом. Предположим, вы применили стиль «style1» к элементу управления пользовательским интерфейсом, а затем вы можете установить отдельные атрибуты, например, переднего плана/фона ... Теперь, каков будет стиль?
Если вы хотите поддерживать/отслеживать состояние кнопки, это должно быть обработано как визуальные состояния, так и в вашем коде позади (ViewModel/Model).
См: Style
public void FooFunc()
{
Button myButton = ...;
Console.WriteLine("The Style: {0}", myButton.Style);
}
Я думаю, что это то, что вы ищете?
Вы попробовали Button.Style
недвижимости? Если разметка настроек стиля выполняется с использованием ресурса Key
, тогда вы должны получить текущий стиль кнопки, используя Button.Style
propetry, иначе немного сложно собрать всю информацию о Style
на уровне управления.
И есть причины для этого. Стили наследуются и могут быть переопределены в различных областях элементов, таких как App, Window, UserControl, Ancestor UIElements и, наконец, индивидуальный элемент управления. Поэтому, когда вы получаете доступ к Button.Style
, вы получаете стиль, который был последним непосредственным стилем, применяемым к Button
. Если стиль BasedOn
другой Style
, то Style.BasedOn
предоставит вам родительский/базовый Style
. Опять же, если этот стиль BasedOn
получен от другого Style
, мы получим его как Style.basedOn.BasedOn
... и т. Д.
Надеюсь, это имеет смысл. :-)
button.style возвращается стиль, а не название стиля! – Max
Почему стиль носит имя? Он должен иметь ключ, если это возможно. В случае, если вы хотите узнать имя, попробуйте свойство Style.Name. Но стили или другие ресурсы обычно содержат «ключ». Этот «ключ» может быть строковым именем или может быть объектом типа, например. BasedOn = "{StaticResource {x: Type TextBox}}" является одним из таких ключей стиля, который является типом TextBox, т.е. глобальным стилем, применяемым ко всем текстовым полям. –
да! u верно! – Max
Я думаю, что вы делаете ошибку с точки зрения дизайна/архитектуры, если подходите к своей проблеме таким образом. Если вам нужно условно изменить стили, вы можете создать пользовательские интерфейсные элементы на основе объектов, которые содержат соответствующую информацию, используя data-binding и templating.
Спасибо за ваши ответы, я использую эту функцию из другого stackoverflow .. он работает и возвращает имя стиля в строку!
static public string FindNameFromResource(ResourceDictionary dictionary, object resourceItem)
static public string FindNameFromResource(ResourceDictionary dictionary, object resourceItem)
{
foreach (object key in dictionary.Keys)
{
if (dictionary[key] == resourceItem)
{
return key.ToString();
}
}
return null;
}
- 1. JQuery получить название кнопки
- 2. Название стиля ссылки
- 3. Навигационный ящик: подменю стиля/название
- 4. текст стиля против стиля кнопки
- 5. Название стиля по умолчанию GWT
- 6. Название этого кнопочного стиля и кода
- 7. как получить название кнопки, используя цикл
- 8. Apple Watch получить название кнопки на IBAction
- 9. Изменить название кнопки
- 10. Изменить название кнопки вопрос
- 11. Определение стиля кнопки Android
- 12. Восстановление стиля нажатой кнопки
- 13. кнопки Унифицированного обмена стиля
- 14. Изменение стиля по умолчанию для Navigator.NavigationBar (название)
- 15. Как сменить название кнопки
- 16. Изменить название кнопки
- 17. Изменить название кнопки HTML
- 18. Центр двухслойной кнопки Название
- 19. JQuery - изменить название кнопки
- 20. Как установить название кнопки?
- 21. название кнопки последние буквы
- 22. Изменение стиля кнопки выбора GridView
- 23. Изменение стиля кнопки при нажатии
- 24. Какое название стиля AlertDialog.Builder положительная кнопка?
- 25. Как создать название стиля абзаца в андроиде:
- 26. Каково название этого стиля файла конфигурации?
- 27. Изменить Вкладки название стиля как Play магазин
- 28. Создание стиля кнопки с помощью кнопки метро
- 29. Быстрое изменение Название кнопки после нажатия кнопки
- 30. Анимированные кнопки WPF изнутри стиля
Попробуйте, что один: http://stackoverflow.com/questions/538750/can-i-get-the-key-of-a-style-in-code-behind-wpf –