Делегирование события clicked в шаблонный элемент управления - PullRequest
0 голосов
/ 11 февраля 2011

Поскольку элемент управления CheckBox не увеличивает флажок при увеличении размера шрифта, я решил создать свой собственный вариант (поскольку он будет использоваться на сенсорном экране).

У меня естьследующий шаблон:

<ControlTemplate x:Key="YesNoCheckbox" TargetType="{x:Type CheckBox}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Button Grid.Column="0" Width="100" Name="myButton"/>
        <ContentPresenter Grid.Column="1" Margin="4,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left" RecognizesAccessKey="True"/>
    </Grid>
    <ControlTemplate.Triggers>
        <Trigger Property="IsChecked" Value="True">
            <Setter Property="Content" TargetName="myButton" Value="Ja"/>
        </Trigger>
        <Trigger Property="IsChecked" Value="False">
            <Setter Property="Content" TargetName="myButton" Value="Nei"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

Однако мне нужно делегировать событие click от кнопки к флажку, чтобы проверенное состояние было отмечено / не отмечено.

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

Я с нетерпением жду вашего ответа.

Спасибо,

Стефан

1 Ответ

0 голосов
/ 11 февраля 2011

CheckBox само по себе является ToggleButton, и вы пытаетесь разместить внутри другую кнопку, что неправильно.

CheckBox автоматически меняет IsChecked при нажатии. Так что вам не нужно определять другую кнопку внутри. Вместо этого вам нужно определить визуальный чертеж в шаблоне CheckBox, который будет масштабироваться при увеличении FontSize и отображать текущее состояние CheckBox. По сути, вам нужно изменить стиль по умолчанию.

...