目录
自定义 刻度轴所显示的 字符串【在源码示例 “AxisColoringSample” 中学习】
自定义 刻度轴所显示字符串的 样式【在源码示例 “AxisColoringSample” 中学习】
一、DynamicDataDisplay参数方法
展示的方法可以在以下代码中测试实现:
<Window x:Class="Simplest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
Title="Simplest plot sample" Height="243" Width="416">
<d3:ChartPlotter Name="myPlotter" Margin="0,-0.521,0,0.521">
<d3:ChartPlotter.MainHorizontalAxis>
<d3:HorizontalAxis x:Name="hAxis"/>
</d3:ChartPlotter.MainHorizontalAxis>
<d3:ChartPlotter.MainVerticalAxis>
<d3:VerticalAxis x:Name="vAxis"/>
</d3:ChartPlotter.MainVerticalAxis>
</d3:ChartPlotter>
</Window>
【图一】
-
隐藏右侧 legend:
myPlotter.LegendVisibility = Visibility.Hidden;
-
隐藏左侧 legend:
myPlotter.NewLegendVisible = false;
-
隐藏网格:
myPlotter.AxisGrid.Visibility = Visibility.Hidden;
//我在网上看到有这样写的,但是我用remove会报错:"AxisGrid"未包含"remove"的定义
//myPlotter.AxisGrid.remove();
-
取消鼠标右键弹出的菜单栏
myPlotter.Children.Remove(myPlotter.DefaultContextMenu);
-
取消鼠标拖动及缩放绘图仪
myPlotter.Children.Remove(myPlotter.MouseNavigation);
-
隐藏 X轴或Y轴
vAxis.Visibility = Visibility.Hidden;
//这是只是隐藏了,之前轴宽度多少就会留白多少
//想要不留白直接 vAxis.Width = 0 或者 hAxis.Height= 0;
-
隐藏 长刻度线:
hAxis.AxisControl.DrawTicks = false;
-
隐藏 短刻度线:
hAxis.ShowMinorTicks = false;
-
保存屏幕截图
SaveFileDialog dlg = new SaveFileDialog(); //文件选择弹出框
dlg.Filter = "PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|BMP (*.bmp)|*.bmp|GIF (*.gif)|*.gif";
dlg.FilterIndex = 1;
dlg.AddExtension = true;
if (dlg.ShowDialog().GetValueOrDefault(false))
{
string filePath = dlg.FileName;
myPlotter.SaveScreenshot(filePath);//filePath:取得保存的目录
}
-
自定义 刻度轴所显示的 字符串【在源码示例 “AxisColoringSample” 中学习】
// 这将使最左侧的轴以百分比形式显示刻度。
vAxis.LabelProvider = new ToStringLabelProvider();
//标签字符串格式
vAxis.LabelProvider.LabelStringFormat = "{0}%";
//设置自定义格式设置工具
vAxis.LabelProvider.SetCustomFormatter(info => (info.Tick * 100).ToString());
【图二】
vAxis.LabelProvider = new ToStringLabelProvider();
vAxis.LabelProvider.SetCustomFormatter(info =>
{
//info.Tick 代表刻度值
if (info.Tick == 0)
{
return info.Tick.ToString("CH1");
}
else
{
return info.Tick.ToString("傻");
}
});
【图三】
-
自定义 刻度轴所显示字符串的 样式【在源码示例 “AxisColoringSample” 中学习】
// 不带余数的情况下,可以除以50的百分比值将是红色的,字体更大
vAxis.LabelProvider.SetCustomView((info, ui) =>
{
if (((int)Math.Round(info.Tick * 100)) % 50 == 0)
{
TextBlock text = (TextBlock)ui;
text.Foreground = Brushes.Red;
text.FontSize = 20;
}
});
【图四】