首页 > 其他分享 >【WPF】ComboBox控件

【WPF】ComboBox控件

时间:2022-11-20 16:14:04浏览次数:68  
标签:控件 combobox 阴影 ComboBox WPF 下拉框 IsTextSearchEnabled

ComboBox控件属性

IsTextSearchEnabled="True":自动补充数据

IsTextSearchCaseSensitive = true;自动补充数据,区分大小写

IsDropDownOpen="True":combobox 自动打开下拉框

IsEditable就是启用或禁用 ComboBox 的文本框中的文本编辑,让combobox可以输入内容

IsTextSearchEnabled="False"支持下拉列表的搜索过滤功能

SelectedIndex = 0;//设置默认显示的item索引

 MaxDropDownHeight="250"  最大下拉框高度,无法显示的的部分,会出现滚动条。

ComboBox附加事件

<ComBox Width="100" Name="SFRName" IsEditable="True"  IsTextSearchEnabled = "true" TextBoxBase.TextChanged="SFRName_TextChanged"/>

当IsEditable设置为true时,ComboBox使用TextBox来显示和编辑文本。 TextBox的TextChanged事件是一个冒泡事件-表示它将在元素树中冒泡,因此我们可以在ComboBox本身上进行处理。
ComboBox本身不公开TextChanged事件,可以使用附加事件为其定义处理程序,因此,使用TextBoxBase.TextChanged语法.
另外IsTextSearchEnabled属性可以实现查询.

combobox 输入内容自动打开下拉列表框

popup StaysOpen="False"

其他知识点

BitmapImage 是位图,主要用于支持可扩展应用程序标记语言 (XAML) 语法

给下拉框添加阴影效果

引入命名空间:xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"

给控件添加引用,这个性能比较好。

例如给Combobox下拉框添加引用效果

 阴影样式一

<--! 其他代码-->
  <Popup x:Name="PART_Popup" AllowsTransparency="true" Grid.ColumnSpan="2" IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
                <theme:SystemDropShadowChrome x:Name="shadow"
                                              Color="Transparent"
                                              RenderTransformOrigin ="5,5"
                                              CornerRadius="4"
                                              MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
                                              MaxHeight="{TemplateBinding MaxDropDownHeight}">
<--!      Margin="10,10,0,0" 这个是重点,显示左边和上边的阴影,默认左下角就有阴影-->
                    <Border x:Name="dropDownBorder"  
                            Margin="10,10,0,0"
                             CornerRadius="4"
                            Padding="10"
                            Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
                            BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"  >
                      
                        <ScrollViewer x:Name="DropDownScrollViewer">
                            <Grid x:Name="grid" RenderOptions.ClearTypeHint="Enabled">
                                <Canvas x:Name="canvas" HorizontalAlignment="Left" Height="0" VerticalAlignment="Top" Width="0">
                                    <Rectangle x:Name="opaqueRect" Fill="{Binding Background, ElementName=dropDownBorder}" Height="{Binding ActualHeight, ElementName=dropDownBorder}" Width="{Binding ActualWidth, ElementName=dropDownBorder}"/>
                                </Canvas>
                                <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Grid>
                        </ScrollViewer>
                    </Border>
                </theme:SystemDropShadowChrome>
            </Popup>
<--! 其他代码-->

效果如下:

 阴影样式二

Margin="8,8,-2,-2" 这个是重点 控制阴影,显示左边和上边的阴影,调整左下角的阴影。
<--! 其他代码-->
  <Popup x:Name="PART_Popup" AllowsTransparency="true" Grid.ColumnSpan="2" IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
                <theme:SystemDropShadowChrome x:Name="shadow"
                                              Color="Transparent"
                                              RenderTransformOrigin ="5,5"
                                              CornerRadius="4"
                                              MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
                                              MaxHeight="{TemplateBinding MaxDropDownHeight}">
<--!       Margin="8,8,-2,-2" 这个是重点 控制阴影,显示左边和上边的阴影,调整左下角的阴影-->
                    <Border x:Name="dropDownBorder"  
                              Margin="8,8,-2,-2"
                             CornerRadius="4"
                            Padding="10"
                            Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
                            BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"  >
                      
                        <ScrollViewer x:Name="DropDownScrollViewer">
                            <Grid x:Name="grid" RenderOptions.ClearTypeHint="Enabled">
                                <Canvas x:Name="canvas" HorizontalAlignment="Left" Height="0" VerticalAlignment="Top" Width="0">
                                    <Rectangle x:Name="opaqueRect" Fill="{Binding Background, ElementName=dropDownBorder}" Height="{Binding ActualHeight, ElementName=dropDownBorder}" Width="{Binding ActualWidth, ElementName=dropDownBorder}"/>
                                </Canvas>
                                <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Grid>
                        </ScrollViewer>
                    </Border>
                </theme:SystemDropShadowChrome>
            </Popup>
<--! 其他代码-->

 

标签:控件,combobox,阴影,ComboBox,WPF,下拉框,IsTextSearchEnabled
From: https://www.cnblogs.com/cdaniu/p/16901913.html

相关文章

  • Android 使用ui控件 【文本显示控件,按钮控件】
    目录注意事项创建控件监控按钮按下修改文本展示控件的内容注意事项1创建控件后一定要设置控件id2控件的修改必须在主线程中创建控件在清单文件中创建控件,我是通过可......
  • 配置实现-编辑详述控件
     编辑详述控件是组合控件,根据配置的控件集合及展现方式生成相应的展示或编辑控件,可用于以下场景:1、详述展现页面2、编辑页面3、查询列表的查询条件4、导出Excel时选择导出......
  • 配置实现-列表控件
    列表控件仿照GridView制作,可以绑定DataTable和对象列表:1、    支持点击标题重新排序、标题合并、行分组合并及行相同数据列合并2、    支持标题列改变宽度,固定列表......
  • WPF 控制程序只能启动一次
    publicpartialclassApp:Application{System.Threading.Mutexmutex;publicApp(){this.Startup+=newStartupEventHan......
  • 关于引用第三方控件等的想法和体会
    1、从我自己开发的情况而言,我自己的原则是尽量不使用第三方的。2、如果采用第三方的,自己会坚持如下几个原则(1)、引用的是非业务核心的(2)、第三方是正规的公司或组织发布的(3)、......
  • 学习wpf笔记3 MVVM模式——【转】C# WPF简单的MVVM模式事例
    一、前言WPF中使用MVVM模式开发有诸如以下优点:1.结构清晰明朗,上手成本低,一个新人也能快速的定位自己需要改动代码的位置。2.耦合度低,更改WPF控件不影响数据结构,更......
  • 工作中常用的上传头像的控件
    html代码部分<divclass="layui-form-item"><divclass="layui-inline"><labelclass="layui-form-label">头像</label>......
  • 【Xaml】WPF中Popup 实现类智能感知
    首先要做的事情就是定义一个popup来显示我们需要展示的东西<Popupx:Name="ConfigPopup"Height="auto"Width="150"StaysOpen="False"Placement="Bottom"IsOpen="Fal......
  • 在WPF中使用Prism弹出自定义窗体样式的对话框
    摘要在Prism中弹出一个对话框,默认是一个Windows默认样式的窗口,会与自己所开发的项目完全不搭配,例如下面这样子如果为了迎合软件主体风格,可以做出类似这样效果其实原理......
  • Selenium4+Python3系列(七) - Iframe、Select控件、交互式弹出框、执行JS、Cookie操作
    前言突然,想把所有之前未更新的常用Api操作、演示写出来,算是对API的一种完结吧。下面按照Api模块来做逐一介绍。一、iframe操作iframe识别:语法:driver.switch_to.fram......