c# – 滚动X轴绘图区域 – Silverlight柱系列
发布时间:2020-12-15 07:51:51 所属栏目:百科 来源:网络整理
导读:我有一个柱系列图表,工作正常. 我有一个功能,我需要添加,我希望horizo??ntall滚动启用到x轴的绘图区域. 这是屏幕截图: 如果你看到屏幕截图我有六个项目,并且由于更多的项目,条形图非常薄,所以假设我有20个项目,那么条形图将根本不可见. 那么我们可以使X轴条
我有一个柱系列图表,工作正常.
我有一个功能,我需要添加,我希望horizo??ntall滚动启用到x轴的绘图区域. 这是屏幕截图: 如果你看到屏幕截图我有六个项目,并且由于更多的项目,条形图非常薄,所以假设我有20个项目,那么条形图将根本不可见. 那么我们可以使X轴条水平滚动吗? 编辑 ResourceDictionary.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:convertor="clr-namespace:ChartingDV.Provider" xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"> <ControlTemplate x:Key="PhoneChartPortraitTemplate" TargetType="charting:Chart"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}"/> <datavis:Legend x:Name="Legend" Grid.Row="2" Header="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}"> <datavis:Legend.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </datavis:Legend.ItemsPanel> <datavis:Legend.Template> <ControlTemplate TargetType="datavis:Legend"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" BorderThickness="0" Padding="0" IsTabStop="False"> <ItemsPresenter x:Name="Items" Margin="10,10,10"/> </ScrollViewer> </Grid> </ControlTemplate> </datavis:Legend.Template> </datavis:Legend> <chartingprimitives:EdgePanel Grid.Column="0" Grid.Row="1" x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}"> <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" /> </chartingprimitives:EdgePanel> </Grid> </ControlTemplate> <!-- Chart Style for Phone --> <Style x:Key="PhoneChartStyle" TargetType="charting:Chart"> <Setter Property="IsTabStop" Value="False" /> <Setter Property="Padding" Value="10" /> <Setter Property="Palette"> <Setter.Value> <datavis:ResourceDictionaryCollection> <!-- Blue --> <ResourceDictionary> <SolidColorBrush x:Key="Background" Color="#E85F3D"/> <Style x:Key="DataPointStyle" TargetType="Control"> <Setter Property="Background" Value="{StaticResource Background}" /> </Style> <Style x:Key="DataShapeStyle" TargetType="Shape"> <Setter Property="Stroke" Value="{StaticResource Background}" /> <Setter Property="StrokeThickness" Value="2" /> <Setter Property="StrokeMiterLimit" Value="1" /> <Setter Property="Fill" Value="{StaticResource Background}" /> </Style> </ResourceDictionary> <!-- Red --> <ResourceDictionary> <SolidColorBrush x:Key="Background" Color="#76D164"/> <Style x:Key="DataPointStyle" TargetType="Control"> <Setter Property="Background" Value="{StaticResource Background}" /> </Style> <Style x:Key="DataShapeStyle" TargetType="Shape"> <Setter Property="Stroke" Value="{StaticResource Background}" /> <Setter Property="StrokeThickness" Value="2" /> <Setter Property="StrokeMiterLimit" Value="1" /> <Setter Property="Fill" Value="{StaticResource Background}" /> </Style> </ResourceDictionary> <!-- Light Green --> <ResourceDictionary> <SolidColorBrush x:Key="Background" Color="#648ED1"/> <Style x:Key="DataPointStyle" TargetType="Control"> <Setter Property="Background" Value="{StaticResource Background}" /> </Style> <Style x:Key="DataShapeStyle" TargetType="Shape"> <Setter Property="Stroke" Value="{StaticResource Background}" /> <Setter Property="StrokeThickness" Value="2" /> <Setter Property="StrokeMiterLimit" Value="1" /> <Setter Property="Fill" Value="{StaticResource Background}" /> </Style> </ResourceDictionary> </datavis:ResourceDictionaryCollection> </Setter.Value> </Setter> <Setter Property="LegendStyle"> <Setter.Value> <Style TargetType="datavis:Legend"> <Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/> <Setter Property="Margin" Value="20"/> </Style> </Setter.Value> </Setter> <Setter Property="ChartAreaStyle"> <Setter.Value> <Style TargetType="Panel"> <Setter Property="MinWidth" Value="100" /> <Setter Property="MinHeight" Value="75" /> </Style> </Setter.Value> </Setter> <Setter Property="PlotAreaStyle"> <Setter.Value> <Style TargetType="Grid"> <Setter Property="Background" Value="Transparent"/> </Style> </Setter.Value> </Setter> <Setter Property="Template" Value="{StaticResource PhoneChartPortraitTemplate}"/> </Style> </ResourceDictionary> 在XAMl文件中: <charting:Chart Name="barChart" Style="{StaticResource PhoneChartStyle}" Template="{StaticResource PhoneChartPortraitTemplate}"> <charting:Chart.Series> <charting:ColumnSeries Title="Incorrect" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}" AnimationSequence="Simultaneous"> </charting:ColumnSeries> <charting:ColumnSeries Title="Correct" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}" AnimationSequence="Simultaneous"> </charting:ColumnSeries> <charting:ColumnSeries Title="Skipped" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}" AnimationSequence="Simultaneous"> </charting:ColumnSeries> </charting:Chart.Series> </charting:Chart> 解决方法
最后我已经解决了,但我没有对API进行任何更改,而是我遵循了以下方法.
1)我们可以选择滚动整个图表. 2)使整个条形图滚动,然后删除Y轴值. 3)现在使用网格行定义创建一个具有Y轴值的虚拟布局.这将是您的根网格. 4)现在在根网格内放置图表网格. 5)现在,当您进行n次测试时,您可以滚动图表,但是具有Y轴值的虚拟布局保持不变,因此对于用户来说,它看起来像是滚动条. 请享用 :) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |