Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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_Menu_User Controls - Fatal编程技术网

哪个wpf控件最适合此菜单场景?

哪个wpf控件最适合此菜单场景?,wpf,menu,user-controls,Wpf,Menu,User Controls,我需要一个按钮式菜单,即水平排列的一组始终可见的按钮。 与单选按钮一样,它们应该有一个选定的属性,即单击命令应该仅在选定状态变为true时触发,而不是像普通按钮那样在每次单击时都触发。RadioButton也与其他按钮一样,在每次单击时触发单击事件。单选按钮上也没有选定的属性 但是如果您希望您的菜单项类似于按钮,那么您可以在这里使用切换按钮。 ToggleButton具有IsChecked属性,该属性跟踪按钮的选中状态以及选中ToggleButton时触发的事件 此外,如果您想在单击其他切换按钮

我需要一个按钮式菜单,即水平排列的一组始终可见的按钮。

与单选按钮一样,它们应该有一个选定的属性,即单击命令应该仅在选定状态变为true时触发,而不是像普通按钮那样在每次单击时都触发。

RadioButton
也与其他按钮一样,在每次单击时触发
单击事件。
单选按钮上也没有选定的属性

但是如果您希望您的
菜单项类似于
按钮
,那么您可以在这里使用
切换按钮
ToggleButton
具有
IsChecked
属性,该属性跟踪按钮的选中状态以及选中
ToggleButton
时触发的事件

此外,如果您想在单击其他切换按钮时自动选中/取消选中您的切换按钮,则可以将
RadioButton
用作
菜单项的
数据模板
,并覆盖其
模板
,如下所示:

      <RadioButton Content="MyRadio" Click="RadioButton_Click">
            <RadioButton.Template>
                <ControlTemplate TargetType="RadioButton">
                    <ToggleButton Checked="ToggleButton_Checked" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Content}"/>
                </ControlTemplate>
            </RadioButton.Template>
        </RadioButton>

单选按钮
与其他按钮一样,每次单击都会触发
单击事件。
单选按钮上也没有选定的属性

但是如果您希望您的
菜单项类似于
按钮
,那么您可以在这里使用
切换按钮
ToggleButton
具有
IsChecked
属性,该属性跟踪按钮的选中状态以及选中
ToggleButton
时触发的事件

此外,如果您想在单击其他切换按钮时自动选中/取消选中您的切换按钮,则可以将
RadioButton
用作
菜单项的
数据模板
,并覆盖其
模板
,如下所示:

      <RadioButton Content="MyRadio" Click="RadioButton_Click">
            <RadioButton.Template>
                <ControlTemplate TargetType="RadioButton">
                    <ToggleButton Checked="ToggleButton_Checked" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Content}"/>
                </ControlTemplate>
            </RadioButton.Template>
        </RadioButton>

单选按钮
与其他按钮一样,每次单击都会触发
单击事件。
单选按钮上也没有选定的属性

但是如果您希望您的
菜单项类似于
按钮
,那么您可以在这里使用
切换按钮
ToggleButton
具有
IsChecked
属性,该属性跟踪按钮的选中状态以及选中
ToggleButton
时触发的事件

此外,如果您想在单击其他切换按钮时自动选中/取消选中您的切换按钮,则可以将
RadioButton
用作
菜单项的
数据模板
,并覆盖其
模板
,如下所示:

      <RadioButton Content="MyRadio" Click="RadioButton_Click">
            <RadioButton.Template>
                <ControlTemplate TargetType="RadioButton">
                    <ToggleButton Checked="ToggleButton_Checked" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Content}"/>
                </ControlTemplate>
            </RadioButton.Template>
        </RadioButton>

单选按钮
与其他按钮一样,每次单击都会触发
单击事件。
单选按钮上也没有选定的属性

但是如果您希望您的
菜单项类似于
按钮
,那么您可以在这里使用
切换按钮
ToggleButton
具有
IsChecked
属性,该属性跟踪按钮的选中状态以及选中
ToggleButton
时触发的事件

此外,如果您想在单击其他切换按钮时自动选中/取消选中您的切换按钮,则可以将
RadioButton
用作
菜单项的
数据模板
,并覆盖其
模板
,如下所示:

      <RadioButton Content="MyRadio" Click="RadioButton_Click">
            <RadioButton.Template>
                <ControlTemplate TargetType="RadioButton">
                    <ToggleButton Checked="ToggleButton_Checked" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Content}"/>
                </ControlTemplate>
            </RadioButton.Template>
        </RadioButton>

都德,这是WPF,您可以使用符合某些或任何需求的任何控件,然后只需为其提供一个新的
控件模板。顺便说一句,在
单选按钮上没有
Selected
IsSelected
属性。。。也许您指的是
IsChecked
属性?此属性继承自
切换按钮
,因此可能更合适

由于
切换按钮
已经是一个
按钮
,您甚至可以不用为它提供一个新的
控制模板

至于您对
点击事件的要求,我认为您不会在任何WPF控件上找到该功能,但可以手动实现:

private void Button_Click(object sender, RoutedEventArgs e)
{
    if (ToggleButton.IsChecked == true) 
    {
        // Do something here when the `Button.IsChecked` == true
    }
}

Dude,这是WPF,您可以使用任何符合某些或任何需求的控件,然后只需为其提供一个新的
ControlTemplate
。顺便说一句,在
单选按钮上没有
Selected
IsSelected
属性。。。也许您指的是
IsChecked
属性?此属性继承自
切换按钮
,因此可能更合适

由于
切换按钮
已经是一个
按钮
,您甚至可以不用为它提供一个新的
控制模板

至于您对
点击事件的要求,我认为您不会在任何WPF控件上找到该功能,但可以手动实现:

private void Button_Click(object sender, RoutedEventArgs e)
{
    if (ToggleButton.IsChecked == true) 
    {
        // Do something here when the `Button.IsChecked` == true
    }
}

Dude,这是WPF,您可以使用任何符合某些或任何需求的控件,然后只需为其提供一个新的
ControlTemplate
。顺便说一句,在
单选按钮上没有
Selected
IsSelected
属性。。。也许您指的是
IsChecked
属性?此属性继承自
切换按钮
,因此可能更合适

由于
切换按钮
已经是一个
按钮
,您甚至可以不用为它提供一个新的
控制模板

至于你方关于