ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 在可编辑的ComboBox中设置闪烁光标的颜色

2019-05-31 10:54:59  阅读:589  来源: 互联网

标签:c combobox wpf


设置TextBox的前景和背景时,会自动设置闪烁光标的颜色.下面的代码将显示一个白色光标.

<TextBox Background="Black" Foreground="White">Test</TextBox>

对可编辑的ComboBox执行相同操作时,不设置光标颜色.下面的代码将显示黑色(在这种情况下是不可见的)光标.

<ComboBox Background="Black" Foreground="White" IsEditable="True">
  <ComboBoxItem>Test1</ComboBoxItem>
  <ComboBoxItem>Test2</ComboBoxItem>
</ComboBox>

那么,如何设置ComboBox的闪烁光标颜色?

解决方法:

有一种方法可以通过重新模板化来改变插入符号的颜色.插入符不是通过改变黑色和白色之间的颜色而闪烁,而是通过在背景颜色和背景颜色的XOR值之间改变颜色(更多信息部分here中的第一段更好地解释了窗口使插入符闪烁的内容).这适用于本机文本框,应该适用于任何“自定义”编写的插入符号,以保持look’n’feel与Windows标准一致.

对于WPF,有一个小的解决方法,可以改变插入符号的颜色:

<TextBox Background="Yellow">
    <TextBox.Template>
        <ControlTemplate TargetType="{x:Type TextBox}">
            <Border x:Name="Border">
                <ScrollViewer Margin="0" x:Name="PART_ContentHost" Style="{DynamicResource SimpleTextScrollViewer}" />
            </Border>
        </ControlTemplate>
    </TextBox.Template>
</TextBox>

通过这种方式设置背景颜色(黄色),插入符号将在此颜色和异或黄色(蓝色)之间闪烁,但黄色背景将永远不会被渲染(因为模板不关心背景颜色). (上面的代码只是一个显示我的意思的例子,它不包含普通文本框的所有视觉效果,但可以轻松添加).

标签:c,combobox,wpf
来源: https://codeday.me/bug/20190531/1188876.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有