WPF组合框应仅在箭头处打开
是否有机会更改wpf组合框,使其仅在单击左侧的箭头时打开? 通常你可以点击任何地方打开它。我不想那样 谢谢 通常你可以点击任何地方打开它。我不想那样 然后,您应该为ToggleButton创建一个自定义模板。在VisualStudio或Blend中的设计模式下,右键单击组合框元素,然后选择编辑模板->编辑副本 这将把默认模板复制到XAML标记中,然后您可以根据需要对其进行编辑。查找带有ComboBoxToggleButton的x:Key的样式,并修改此样式的ControlTemplate 通常你可以点击任何地方打开它。我不想那样 然后,您应该为ToggleButton创建一个自定义模板。在VisualStudio或Blend中的设计模式下,右键单击组合框元素,然后选择编辑模板->编辑副本WPF组合框应仅在箭头处打开,wpf,xaml,Wpf,Xaml,是否有机会更改wpf组合框,使其仅在单击左侧的箭头时打开? 通常你可以点击任何地方打开它。我不想那样 谢谢 通常你可以点击任何地方打开它。我不想那样 然后,您应该为ToggleButton创建一个自定义模板。在VisualStudio或Blend中的设计模式下,右键单击组合框元素,然后选择编辑模板->编辑副本 这将把默认模板复制到XAML标记中,然后您可以根据需要对其进行编辑。查找带有ComboBoxToggleButton的x:Key的样式,并修改此样式的ControlTemplate 通常你
这将把默认模板复制到XAML标记中,然后您可以根据需要对其进行编辑。查找带有ComboBoxToggleButton的x:Key的样式,并修改此样式的ControlTemplate。我成功地使用了以下代码。请注意,我使用的是Materialdesign,如果不使用它,您必须对其进行一些更改 App.xaml中的代码 以及视图中的组合框本身
<ComboBox materialDesign:HintAssist.Hint="{lex:Loc ordernumber}" Style="{StaticResource MaterialDesignFloatingHintComboBox2}" Text="{Binding SalesOrderNumber}" Margin="0 0 40 0" FontSize="22" Width="250"
IsEditable="True" DisplayMemberPath="Identifier" SelectedItem="{Binding SelectedSalesOrder}"
ItemsSource="{Binding LastSalesOrders}" IsTextSearchEnabled="False" utility:EditableComboBox.MaxLength="10" x:Name="TbOrder" >
<ComboBox.InputBindings>
<KeyBinding Command="{Binding OpenSalesOrderOrCustomerCommand}" Key="Return" />
</ComboBox.InputBindings>
<ComboBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{lex:Loc paste}" Command="{Binding PasteOrdernumberCommand}" />
</ContextMenu>
</ComboBox.ContextMenu>
</ComboBox>
我设法让它与以下代码一起工作。请注意,我使用的是Materialdesign,如果不使用它,您必须对其进行一些更改 App.xaml中的代码 以及视图中的组合框本身
<ComboBox materialDesign:HintAssist.Hint="{lex:Loc ordernumber}" Style="{StaticResource MaterialDesignFloatingHintComboBox2}" Text="{Binding SalesOrderNumber}" Margin="0 0 40 0" FontSize="22" Width="250"
IsEditable="True" DisplayMemberPath="Identifier" SelectedItem="{Binding SelectedSalesOrder}"
ItemsSource="{Binding LastSalesOrders}" IsTextSearchEnabled="False" utility:EditableComboBox.MaxLength="10" x:Name="TbOrder" >
<ComboBox.InputBindings>
<KeyBinding Command="{Binding OpenSalesOrderOrCustomerCommand}" Key="Return" />
</ComboBox.InputBindings>
<ComboBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{lex:Loc paste}" Command="{Binding PasteOrdernumberCommand}" />
</ContextMenu>
</ComboBox.ContextMenu>
</ComboBox>
这在标准wpf上非常有效。不幸的是,我使用的是材料设计。但我想我会找到答案的。谢谢bunch@ThomasKlammer有什么有趣的更新吗?这对我很有帮助,此外,我想删除所选项目的文本,只保留箭头。@cf请参见下面我的新帖子。这在标准wpf上非常有用。不幸的是,我使用的是材料设计。但我想我会找到答案的。谢谢bunch@ThomasKlammer有什么有趣的更新吗?这对我很有帮助,此外,我想删除所选项目的文本,只保留箭头。@cf请参阅下面我的新帖子
<ComboBox materialDesign:HintAssist.Hint="{lex:Loc ordernumber}" Style="{StaticResource MaterialDesignFloatingHintComboBox2}" Text="{Binding SalesOrderNumber}" Margin="0 0 40 0" FontSize="22" Width="250"
IsEditable="True" DisplayMemberPath="Identifier" SelectedItem="{Binding SelectedSalesOrder}"
ItemsSource="{Binding LastSalesOrders}" IsTextSearchEnabled="False" utility:EditableComboBox.MaxLength="10" x:Name="TbOrder" >
<ComboBox.InputBindings>
<KeyBinding Command="{Binding OpenSalesOrderOrCustomerCommand}" Key="Return" />
</ComboBox.InputBindings>
<ComboBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{lex:Loc paste}" Command="{Binding PasteOrdernumberCommand}" />
</ContextMenu>
</ComboBox.ContextMenu>
</ComboBox>