Vladimir Asked:2022-03-17 01:16:59 +0800 CST2022-03-17 01:16:59 +0800 CST 2022-03-17 01:16:59 +0800 CST 创建双按钮 772 从逻辑上讲,它看起来像 2 个按钮,一个小一个大。第一个用作按钮,另一个用作下拉列表。 通过按下按钮 按另一个 如何制作这样的按钮? c# 1 个回答 Voted Best Answer VladD 2022-03-17T02:05:39+08:002022-03-17T02:05:39+08:00 嗯,例如。将按钮放在组合框上。用 拖动按钮下的组合框ZIndex。对其进行样式ComboBoxItem设置,使其在正确的位置显示分隔符。会出现这样的情况: <Grid Height="20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="150"/> <ColumnDefinition Width="20"/> </Grid.ColumnDefinitions> <Button Grid.Column="0" Content="{Binding Text,ElementName=cb}"/> <ComboBox IsReadOnly="True" ItemsSource="{Binding}" DisplayMemberPath="DisplayName" Grid.ColumnSpan="2" Name="cb" Panel.ZIndex="-1"> <ComboBox.Resources> <Style TargetType="{x:Type ComboBoxItem}"> <Style.Triggers> <!-- если на входе null, то... --> <DataTrigger Binding="{Binding}" Value="{x:Null}"> <!-- не разрешаем выбирать этот элемент, и... --> <Setter Property="IsEnabled" Value="False"/> <!-- показываем вместо него разделитель --> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Separator/> </ControlTemplate> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </ComboBox.Resources> </ComboBox> </Grid> 在DataContext属性Items中会有这样的元素的集合: class SelectItem { public string DisplayName { get; } // тут другие члены } 像这样的东西: new List<SelectItem>() { new SelectItem { DisplayName = "Case insensitive" }, null, new SelectItem { DisplayName = "Integer" }, new SelectItem { DisplayName = "Positive integers" }, new SelectItem { DisplayName = "Negative integers" }, new SelectItem { DisplayName = "Year (1900-2099)" }, null, new SelectItem { DisplayName = "AVI (*.avi)" }, new SelectItem { DisplayName = "JPEG (*.jpg; *.jpeg)" }, new SelectItem { DisplayName = "MKV (*.mkv)" }, new SelectItem { DisplayName = "AVI (*.avi)" }, null, new SelectItem { DisplayName = "Do not contain SUBSTRING" }, new SelectItem { DisplayName = "Whitespace" } } 结果是这样的:
嗯,例如。将按钮放在组合框上。用 拖动按钮下的组合框
ZIndex
。对其进行样式ComboBoxItem
设置,使其在正确的位置显示分隔符。会出现这样的情况:在
DataContext
属性Items
中会有这样的元素的集合:像这样的东西:
结果是这样的: