Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 将单击的事件委托给模板化控件_Wpf_Controltemplate - Fatal编程技术网

Wpf 将单击的事件委托给模板化控件

Wpf 将单击的事件委托给模板化控件,wpf,controltemplate,Wpf,Controltemplate,由于复选框控件不会在字体大小增加时增加复选框,因此我决定创建自己的变体,因为它将在触摸屏上使用 我有以下模板: <ControlTemplate x:Key="YesNoCheckbox" TargetType="{x:Type CheckBox}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnD

由于复选框控件不会在字体大小增加时增加复选框,因此我决定创建自己的变体,因为它将在触摸屏上使用

我有以下模板:

<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>
但是,我需要将单击事件从按钮委托给复选框,以便选中状态为选中/未选中

我是一个完全的新手,这可能很容易,但我无法搜索这些信息,可能是因为缺少正确的关键字来搜索

我期待着收到你的来信

谢谢

Stefan

复选框本身就是一个切换按钮,您试图在其中放置另一个按钮,这是错误的


复选框在单击时会自动更改其IsChecked。所以你不需要在里面定义另一个按钮。您需要做的是在复选框模板中定义一个可视图形,该图形将在FontSize增大时缩放,并反映当前复选框状态。基本上,您需要修改默认样式。

为什么这是错误的?此控件与嵌套控件(例如名称:)之间有什么区别?@Vincent-Name:不同。首先,你要做的是。这有什么意义吗?第二,不要混合逻辑控件组合和控件模板。在WPF中,控件设计为无外观。这意味着它们定义了对点击的行为响应、状态等,并且它们的外观在您可能想要更改的控件模板中定义。在您的案例中,您需要定义一个新的外观,但是复选框的行为应该保持不变。