Я пытаюсь изменить стиль нескольких кнопок Toggle.Видимо, я не могу просто установить новый цвет фона, потому что есть «Шаблон управления», который обеспечивает визуальное поведение ToggleButton.Итак, что мне нужно сделать, это указать в XAML замену «ControlTemplate» для ToggleButton, которая обеспечивает другое визуальное поведение, помимо простого цвета фона.
Q1 .Это правильно?
Я решил начать с шаблона элемента управления «по умолчанию» для кнопки ToggleButton, который я взял здесь , а затем изменить его.На самом деле это ControlTemplate по умолчанию для Silverlight, я думаю, и я не использую Silverlight, я использую WPF.Но ... Соответствующая страница документации для WPF не содержит спецификацию шаблона элемента управления по умолчанию.Он предоставляет «a» ControlTemplate, что не то, что я хочу.
Q2 .Я не уверен, имеет ли значение, что я использую вещь от Silverlight.Это так?
В примере с Silverlight есть префикс пространства имен XML vsm, примененный к VisualStateManager.Очевидно, пространство имен xml -
xmlns:vsm = "clr-namespace:System.Windows;assembly=System.Windows"
... но где-то еще я читал, что это пространство имен XML "больше не нужно".
Это все очень, очень запутанно.
В Googlespace есть ссылки на то, что называется "Инструментарий WPF" , с которым я ранее сталкивался - Я использовал его для текстового поля автозаполнения довыпуск WPF V4.Я предполагаю, что некоторые вещи из набора инструментов WPF были добавлены в WPF для .NET v4.0, и поэтому мне больше не нужно указывать набор инструментов WPF.
Q3 .Если бы кто-то мог подтвердить это понимание, я был бы признателен за это.
Хорошо, теперь, начиная с «ControlTemplate» по умолчанию для ToggleButton, я первым делом должен был скомпилировать его, прежде чем вносить какие-либо изменения.Он не компилируется, завершается с
c: \ dev ... \ ToggleButtonStyle1.xaml (23,14): ошибка MC3074: тег 'VisualStateManager.VisualStateGroups' не существует в пространстве имен XML 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. Строка 23, Позиция 14.
Достаточно ясно.Затем я посмотрел документацию для определения VisualStateManager в XAML.Это, как ни странно, определяет два пространства имен xml, одно из которых я и использовал.
Q4 Хм, какой из них я должен использовать?Один из них я использовал, и он не работал.В документации совершенно неясно, что означает указание ДВУХ пространств имен XML .(с их головами!)
У меня есть ссылка на PresentationFramework.dll в файле проекта:
<ItemGroup>
....
<Reference Include="PresentationFramework" />
</ItemGroup>
Я не использую Visual Studio здесь;Я использую текстовый редактор.Я хочу понять, как это работает, а не какие кнопки нажимать.
Спасибо за любую помощь, которую вы можете оказать.
Просто дополнительный комментарий - все это кажется очень очень сложным.Все, что я хочу сделать, это изменить цвет кнопки ToggleButton, когда он включен.Это действительно не должно быть так сложно.