You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可自定义AvalonEdit搜索面板的按钮图标?

解决方案
  • 第一步:确认安装正确的NuGet包
    直接在NuGet包管理器搜索安装官方发布的ICSharpCode.AvalonEdit稳定版,选择适配.NET Framework 4.7.2的5.x及以上版本即可,避免使用第三方修改的分叉版本。
  • 第二步:修正XAML命名空间声明
    你之前的命名空间漏了程序集标识参数,导致XAML解析器无法定位AvalonEdit程序集中的Search相关类型,修改为如下写法即可:
    xmlns:search="clr-namespace:ICSharpCode.AvalonEdit.Search;assembly=ICSharpCode.AvalonEdit"
    
    修正后即可正常识别search:SearchPanel类型,编写自定义样式。
  • 第三步:完整自定义样式示例
    以下是基础的SearchPanel自定义样式参考,你可以根据自己的应用设计调整对应属性:
    <Style TargetType="search:SearchPanel">
        <Setter Property="Background" Value="#2B2B2B"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="BorderBrush" Value="#3F3F46"/>
        <Setter Property="BorderThickness" Value="0,1,0,0"/>
        <!-- 自定义搜索匹配标记颜色 -->
        <Setter Property="MarkerBrush" Value="#FF6A00"/>
        <!-- 自定义当前选中匹配项的标记颜色 -->
        <Setter Property="CurrentMatchMarkerBrush" Value="#FFD700"/>
    </Style>
    
  • 第四步:后台代码动态调整(可选)
    如果需要运行时动态修改搜索面板的行为或样式,可以在窗口初始化时通过SearchPanel.Install方法获取实例直接操作:
    using ICSharpCode.AvalonEdit.Search;
    
    // 假设你的AvalonEdit控件名为textEditor
    SearchPanel customSearchPanel = SearchPanel.Install(textEditor);
    // 可直接修改公开属性,比如设置占位符、隐藏替换按钮等
    customSearchPanel.FindTextBox.Placeholder = "输入搜索内容";
    customSearchPanel.IsReplaceModeVisible = false;
    

内容的提问来源于stack exchange,提问作者Frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:06:03