Помогите попытаться использовать Togglebutton в Dickingnary
-
11-10-2019 - |
Вопрос
Я очень новичок в WPF, и мне сталкивается проблема, когда мне нужна помощь:
Моя среда - .net 4, VS2010, Win 7
Я хочу определить кнопку «Стилизованная переключателя», которую я буду использовать из пользовательского управления. Когда я объявляю контроль Togglebutton в UserControl, я хочу дать 2 возможного содержимого в соответствии с государством кнопки.
Мой вопрос: я не знаю, как объявить мою кнопку с помощью двух содержимого (один, когда iSchecked = true, один, когда Ischecked = false), я включил какой -то код, который я написал, который не компилируется.
заранее спасибо
...
Решение
Вы должны иметь возможность использовать что -то вроде:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content">
<Setter.Value>
<Grid>
<TextBlock>Click Me</TextBlock>
</Grid>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content">
<Setter.Value>
<Grid>
<TextBlock>Click Me Again</TextBlock>
</Grid>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
Другие советы
В зависимости от того, что такое ваше содержимое, вы можете сделать что -то вроде:
<ToggleButton IsChecked="True">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Button></Button>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="Red" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
В этом примере ToggleButton имеет один контент, когда он проверяется (кнопка) и другое контент, когда он не проверяется (красный фон -граница). Вам придется справиться с действиями, чтобы переключить ичистичное состояние отдельно.
Кроме того, если Togglebutton является единственным контролем в вашем Usercontrol, нет необходимости использовать UserControl, просто Restyle togglebutton. Usercontrols более присвоены, если вы хотите объединить элементы управления, чтобы иметь определенную функциональность (например, текстовое поле поиска и кнопка GO, которая будет использоваться вместе в качестве управления поиском).
Вы можете стилизовать ToggleButton, установив ControlTemplate
Проверьте WPF ControlTemplate Trigger Tirec. Анкет Это поможет вам