如何去除如图所示的边框?
我正在尝试删除图像周围的边框
并尝试了一些解决方案,例如
BorderBrush="透明"
BorderThickness="0"
但这些解决方案不起作用。
我只想在窗口中显示图形部分。
我提供 XAML
和 CS
代码。请帮我解决一下。
XAML:
<Window x:Class="WpfToolkitChart.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="308.796" Width="436.419" Background="White"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit">
<Window.Resources>
<Style x:Key="DataPointStyle1" TargetType="{x:Type chartingToolkit:LineDataPoint}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="chartingToolkit:LineDataPoint">
<Grid Margin="0,0,0,0">
<Ellipse Fill="#617D99" ToolTip="{Binding Y}"/>
<Canvas>
<Image Source="/Images/marker.png" Cursor="Hand" Height="40" Width="20" Margin="-6,-33,0,0" Visibility="{Binding BindingInfo}" ToolTip="You!!" />
<Ellipse Fill="{Binding Info}" Height="10px" Width="10px" Margin="0,-20,0,0" />
</Canvas>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="#33557A"></Setter>
</Style>
</Window.Resources>
<Grid Margin="0,0,0,0">
<chartingToolkit:Chart Name="lineChart" Title="" VerticalAlignment="Top" Margin="0,0,0,0" FontSize="10px" Height="269" Foreground="Black" Background="Transparent"
BorderBrush="Transparent">
<chartingToolkit:LineSeries Name="lp"
DependentValuePath="Y" Margin="0,0,0,0" IndependentValuePath="X"
ItemsSource="{Binding}" IsSelectionEnabled="True"
DataPointStyle="{StaticResource DataPointStyle1}">
</chartingToolkit:LineSeries>
<chartingToolkit:Chart.Axes>
<chartingToolkit:LinearAxis Orientation="Y" Visibility="Hidden"/>
</chartingToolkit:Chart.Axes>
<chartingToolkit:Chart.LegendStyle>
<Style x:Name="LegendHideStyle1" TargetType="Control">
<Setter Property="Width" Value="0"/>
<Setter Property="Height" Value="0"/>
</Style>
</chartingToolkit:Chart.LegendStyle>
<chartingToolkit:Chart.PlotAreaStyle>
<Style TargetType="Grid">
<Setter Property="Background" Value="Transparent" />
</Style>
</chartingToolkit:Chart.PlotAreaStyle>
</chartingToolkit:Chart>
</Grid>
</Window>
CS:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
showColumnChart();
}
private void showColumnChart()
{
double y1 = 5, y2 = 1, y3 = 3, y4 =2;
ObservableCollection<MyDataModelClass> data = new ObservableCollection<MyDataModelClass>{
new MyDataModelClass {X = "A", Y = y1, BindingInfo = "Hidden" },
new MyDataModelClass {X = "B", Y = y2, BindingInfo = "Hidden" },
new MyDataModelClass {X = "C", Y = y3, BindingInfo = "Hidden" },
new MyDataModelClass {X = "D", Y = y4, BindingInfo = "Visible" }
};
double max = data.Max(m => m.Y);
double min = data.Min(m => m.Y);
double Percentage = 15;
double diff = max - min;
double percetage = (Math.Abs(diff) / 100) * Percentage;
double minVal = min - percetage;
double maxVal = max + percetage;
LinearAxis axis = new LinearAxis();
axis.Orientation = AxisOrientation.Y;
axis.Maximum = maxVal;
axis.Minimum = minVal;
axis.Visibility = Visibility.Hidden;
//and use it:
LineSeries ls = lineChart.Series.First() as LineSeries;
ls.DependentRangeAxis = axis;
//lineChart.Visibility = Visibility.Hidden;
ls.BorderBrush = Brushes.Transparent;
lineChart.DataContext = data;
}
}
}
最佳答案
经过大量搜索和实验,我找到了一个简单的解决方案。我们需要更改图表模板,只需在 XAML 文件中添加以下代码和一个引用:
xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
<chartingToolkit:Chart.Template>
<ControlTemplate TargetType="chartingToolkit:Chart">
<Border
BorderBrush="Transparent"
BorderThickness="0">
<Grid>
<chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
<Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
</chartingprimitives:EdgePanel>
</Grid>
</Border>
</ControlTemplate>
</chartingToolkit:Chart.Template>
关于.net - 如何删除WPF中折线图周围的边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58744510/