首页 > 其他分享 >wpf combobox 去除下拉框展开时自动选择文本

wpf combobox 去除下拉框展开时自动选择文本

时间:2024-10-15 18:49:02浏览次数:8  
标签:combobox CaretIndex private element SelectionLength wpf txt 下拉框

新增一个自定义控件继承ComboBox,同事在输入事件之前打开下拉框

 public partial class ComboBoxEx : ComboBox
 {
     public ComboBoxEx()
     {
     }
     private int caretPosition;

     public override void OnApplyTemplate()
     {
         base.OnApplyTemplate();

         var element = GetTemplateChild("PART_EditableTextBox");
         if (element != null)
         {
             var textBox = (TextBox)element;
             //};
             textBox.SelectionChanged += OnDropSelectionChanged;
         }
     }

     private void OnDropSelectionChanged(object sender, System.Windows.RoutedEventArgs e)
     {
         TextBox txt = (TextBox)sender;

         Trace.WriteLine("Selection changed: " + txt.SelectionLength + ",CaretIndex:" + txt.CaretIndex);

         if (base.IsDropDownOpen && txt.SelectionLength > 0)
         {
             txt.CaretIndex = caretPosition;
         }
         if (txt.SelectionLength == 0 && txt.CaretIndex != 0)
         {
             caretPosition = txt.CaretIndex;
         }

         e.Handled = true;
     }
 }

前台

  <usercontrolsex:ComboBoxEx IsTextSearchEnabled="False" IsEditable="True"  FontSize="15"
         x:Name="txtUser"  PreviewTextInput="txtUser_PreviewTextInput"/>

后台事件

    private void txtUser_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        txtUser.IsDropDownOpen = true;
    }

标签:combobox,CaretIndex,private,element,SelectionLength,wpf,txt,下拉框
From: https://www.cnblogs.com/ives/p/18468167

相关文章

  • WPFDeveloper正式版发布
    WPFDeveloperWPFDeveloper一个基于WPF自定义高级控件的WPF开发人员UI库,它提供了众多的自定义控件。该项目的创建者和主要维护者是现役微软MVP闫驚鏵:https://github.com/yanjinhuagood该项目还有众多的维护者,详情可以访问github上的README,项目地址:https://github.com/WPFDeve......
  • WPF中实现菜单导航
    这里是借助三方UI框架实现了,感兴趣的小伙伴可以看一下。 深色模式:​ 浅色模式: ​这里主要使用了以下三个包:MahApps.Metro:UI库,提供菜单导航和其它控件MahApps.Metro.IconPacks:图标库BlurWindow:窗口库 实现步骤:1、使用BlurWindow放置一个窗口1<tianxia:BlurWi......
  • DevExpress WPF中文教程:Data Grid(数据网格)实现细节一览
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • WPF中MVVM的应用举例
    WPF(WindowsPresentationFoundation)是微软开发的用于创建用户界面的框架,而MVVM(Model-View-ViewModel)模式是一种分离前端UI逻辑与后台业务逻辑的方法。在WPF中使用MVVM模式可以提高代码的可维护性、可测试性和可扩展性。在这篇文章中,我们将深入探讨WPF中的MVVM模式,并通过具......
  • WPF中Resx文件中添加Byte[]
    参考:https://learn.microsoft.com/zh-tw/dotnet/api/system.resources.resxresourcewriter.generate?view=windowsdesktop-8.0&viewFallbackFrom=netcore-3.1代码实现:staticvoidMain(string[]args){using(ResXResourceWriterresWriter=newResXResourceWr......
  • WPF - 项目样例
    WPF-项目样例 1. 创建项目:参考:https://www.cnblogs.com/1285026182YUAN/p/18462396 2. 修改App.xaml<Applicationx:Class="ModelFileMigrate.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns......
  • wpf 下拉框添加选项中删除数据
    需要根据实际需求在按钮的对应事件或者Command中添加逻辑<StyleTargetType="ComboBox"x:Key="DeleteComboBoxStyle"><SetterProperty="ItemContainerStyle"><Setter.Value><!--ComBoxItem--><......
  • [WPF] 可选择的TextBlock,正则匹配高亮显示
    实现TextBlock控件像TextBox一样支持选择文本,又保留TextBlock显示省略号等特性,找不到参考文献了,抱歉。下面演示基于可选择TextBlock实现的效果: 代码已上传至https://gitee.com/Pumbaa_Peng/textbook-demo.git。1<pp:ChromeWindowx:Class="TextBlockDemo.MainWind......
  • WPF 性能优化-列表控件性能
    下面记录几种针对大数据列表控件性能的增强特性,WPF所有继承自ItemsControl的控件(列表控件)都支持这些增强特性,包括ListBox、ComboBox、ListView、TreeView以及DataGrid。一、虚拟化WPF列表控件所提供的最重要的功能就是UI虚拟化。UI虚拟化是列表只为可见区域中能显示的项创建容器......
  • layui用iframe更新表单怎么回显select下拉框中的数据
     如图所示的三个步骤,获取contentWindow,在iframe中的select的id为categoryId中赋值,最后还要重新渲染,就能在iframe中回显得到selected的选项了,效果如下图所示。  另外,我尝试过在iframe的html中添加inputtype="hidden"id="categoryHid"的元素来存放categoryId的值,并在主页......