WPF 柱形图样式:删除渐变效果,设置 y 轴上散列标记的颜色(次网格线)

2024-03-03

我有一个 WPF ColumnSeries 图表,看起来不太完美。我想知道如何通过三种不同的方式改进它

  1. 去除渐变效果。我传递了纯色作为 ItemColor,例如绿色,但我得到了渐变颜色。有没有办法消除这个影响。我知道渐变色听起来是个天才的想法,而且看起来也不错。但在我正在做的小事情中,这不是一个好主意。在下面的图片中,第一张是我现在拥有的,第二张是我想要的。灰色是渐变色(见红圈那一栏)

  2. 在 y 轴右侧显示 y 轴上的散列标记(次网格线)。它目前位于左侧并且是黑色的。我想知道如何显示轴右侧的线条,以及是否可以设置线条的颜色,那就太好了。(请参阅附在蓝色圆圈中的图片)

(我实际上已经找到了答案 http://msmvps.com/blogs/deborahk/archive/2011/03/05/silverlight-charting-formatting-the-tick-marks.aspx http://msmvps.com/blogs/deborahk/archive/2011/03/05/silverlight-charting-formatting-the-tick-marks.aspx)

  1. 删除列的白色边框。我查过了史努比。但是,我仍然不知道边界位于哪一层。 (请看附图黑圈内的那张)

请阅读下面的一小段代码,看看我现在拥有什么。

  <charting:ColumnSeries DependentValuePath="ItemValue" IndependentValuePath="ItemName" ItemsSource="{Binding}">
        <charting:ColumnSeries.DataPointStyle>
            <Style TargetType="charting:ColumnDataPoint">
                <Setter Property="Background" Value="{Binding ItemColor}"/>
                <Setter Property="BorderBrush" Value="Transparent"/>
            </Style>
        </charting:ColumnSeries.DataPointStyle>
    </charting:ColumnSeries>
    <charting:Chart.Axes>
        <charting:LinearAxis Orientation="Y" ShowGridLines="True"/>
        <charting:CategoryAxis Orientation="X" ShowGridLines="False"/>
    </charting:Chart.Axes>

对于ItemColor,后面的代码是:

ItemColor = new System.Windows.Media.SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("Gray"));

我知道这有点旧并且已经回答了,但是我在试图找出与 Jan 在问题 1 中询问的相同的事情时发现了这篇文章,随后我偶然发现了一种不太复杂的方法来消除条形内的渐变。所以我想我应该为后代分享。

我想到的技巧是忽略栏背景颜色,并通过设置其颜色来设置 ColumnSeries 颜色边框画笔颜色,然后将 BorderThickness 设置为大得离谱(例如 100)。如果该值足够大(与可能的数据集相比),则边框将完全覆盖条形图的内部,并且渐变填充将不可见。如果它太大,它不会溢出或不会出现任何奇怪的行为,所以在这里“太大”是有意义的。 (尽管如果有人认为这有可能引起问题,我肯定想知道!)

这是 XAML:

<chartingToolkit:ColumnSeries.DataPointStyle>
    <Style TargetType="chartingToolkit:ColumnDataPoint">
        <Setter Property="BorderBrush" Value="Blue"/>
        <Setter Property="BorderThickness" Value="100"/>
        <Setter Property="DependentValueStringFormat" Value="{}{0:C0}"/>
    </Style>
</chartingToolkit:ColumnSeries.DataPointStyle>

它看起来像这样:

显然,它并不完美,您放弃了在列周围设置实际边框,但如果这适合您的目的,那么它比重新模板化图表要简单得多,并且允许您更轻松地控制值格式等内容(我那里需要货币格式,正如您从代码中看到的那样)。

希望这对某人有用或感兴趣。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 柱形图样式:删除渐变效果,设置 y 轴上散列标记的颜色(次网格线) 的相关文章

  • 如何将外部程序集的类型添加到工具箱控件? (WPF)

    我正在尝试在我的 WPF 应用程序中执行类似的操作 ToolboxControl ctrl new ToolboxControl Assembly assembly Assembly LoadFile file var category n
  • 为什么在 WinForms 中可以跨线程添加控件,而在 WPF 中却不能?

    在虚拟 WinForms 应用程序中 我可以在设计时创建 ListBox 在运行时创建后台线程 然后从后台线程将控件添加到 ListBox 但如果我在 WPF 中执行相同的操作 则会出现错误 为什么我可以在 WinForms 中执行此操作
  • 拖动 Window 时无法可靠地调用 LocationChanged

    为了实现对接 我依靠监听 Window LocationChanged 事件来检测在屏幕上拖动的窗口的位置变化 但一位用户报告说 对接在他们的机器上无法工作 事实证明 他们在 Windows 性能选项中禁用了 拖动时显示窗口内容 因此只有在
  • WPF:BinaryFormatter 可以序列化 FlowDocument 实例吗?

    我喜欢使用binaryformatter来序列化流文档 但这是例外 Serializable public class BinFlow public FlowDocument my get set BinFlow myBF new BinF
  • OpenGL:顶点越多,性能越慢

    我正在开发一个程序的一部分 其中给定 xyz 坐标集合 制作 3D 模型 我已经完成了这张图片所需的所有功能 即平移 旋转 缩放 但是给出的 xyz 坐标越多 程序运行速度就越慢 我的程序在处理 29 000 个坐标时运行得非常流畅 但当我
  • 使用 XAML 文件作为矢量图像源

    我希望能够使用矢量图形 最好在 XAML 中定义 作为图像控件的源 就像我当前可以使用 PNG 等光栅图像一样 这样我就可以轻松地混合和匹配位图和矢量图像 如下所示
  • 如何更改每个 DataGrid 行详细信息的行详细信息的 DataTemplate 中的 TextBlock 的文本?

    我有 Datagrid 通过鼠标在每一行中单击显示数据网格行详细信息 这是代码 Microsoft Windows Controls DataGridRow row Microsoft Windows Controls DataGridRo
  • WPF XAML 定义的 MenuItem 重用开始工作,然后消失

    以下简单代码尝试在两个单独的菜单上重用 Window Resources 中定义的 MenuItem
  • WPF 3D - 在复杂几何体上映射渐变画笔

    我想问是否有人知道如何在 WPF 3D 中的复杂对象上映射渐变画笔 结果应该类似于 matlab 中的 3D 图像 例如 3D 函数 假设您有一些想要可视化的 3 维数据 并且想要通过颜色区分某些级别的值 给定一个 GradientBrus
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 为什么在 Windows 中缩放 WPF 应用程序时会看到像素?

    我使用 WPF 为随机应用程序开发了一个 GUI 我在应用程序窗口上放置了一堆开箱即用的 WPF 控件 我没有定制任何东西 没有使用位图等 在 Windows 7 中运行我的应用程序并使用放大镜应用程序进行缩放时 Win key Plus
  • WPF:鼠标按下时不会触发鼠标离开事件

    我遇到鼠标进入 离开事件的问题 当按下鼠标按钮并按住光标在控件内 然后光标以足够快的速度移出控件时 此事件不会触发 你能告诉我为什么会这样吗 有什么方法可以正确获取这些事件吗 请检查示例项目以查看其实际效果 https www dropbo
  • 使用 XAML 地图控件在基于 C# VS2013 WPF 的 OpenStreetMap 的地图上添加热图图层

    我正在尝试使用 XAML MAP 控件 https xamlmapcontrol codeplex com https xamlmapcontrol codeplex com 在基于 C VS2013 WPF 的 OpenStreetMap
  • Brush 属性的 WPF ColorAnimation

    我想知道是否有人可以帮助我 我有一个标签 当在后面的代码中调用方法时 我需要能够在任意两种颜色之间交叉淡入淡出 迄今为止我最好的尝试 Private OldColor as Color Colors White Sub SetPulseCo
  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • 从 BitmapImage 获取支持的图像格式

    如何获取 System Windows Media Imaging BitmapImage 支持的图像格式列表 我正在用 C WPF 编写一个简单的图像处理工具 BitmapImage 类是更有用的位图类之一 因为它能够从多种格式进行解码
  • 密码盒和 MVVM

    我们有以下场景 MVVM 用户界面 用户可以在其中输入密码 实际上是一个PasswordBox 应该做一些工作的服务器 服务器连接到一些需要身份验证的数据库 我已经读过这个关于MVVM中PasswordBox的问题 https stacko
  • 在 XAML 中设置依赖项属性时,为什么会在运行时绕过 .NET 属性包装器?

    我正在阅读 Adam Nathan 的书 WPF 4 Unleashed 第 82 页有以下警告 在 XAML 中设置依赖属性时 NET 属性包装器会在运行时被绕过 虽然 XAML 编译器依赖于 编译时的属性包装器 WPF 调用底层 直接在
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件

随机推荐