Как добавить ScrollBar на график
Я разработал приложение aC# WPF. Я хотел сделать масштабирование или полосу прокрутки для представления моего графика, потому что данные объединяются друг с другом, и я считаю, что масштабирование или добавление полосы прокрутки было бы решением. пока у меня есть это. Кстати, я делаю столбчатую диаграмму.
public partial class ChartControl : UserControl
{
System.Windows.Forms.ScrollableControl ctl = new System.Windows.Forms.ScrollableControl();
public ChartControl()
{
InitializeComponent();
scrollbar();
}
private System.Windows.Forms.ScrollBars scrollbar()
{
if (ctl.HorizontalScroll.Visible)
return ctl.VerticalScroll.Visible ? System.Windows.Forms.ScrollBars.Both : System.Windows.Forms.ScrollBars.Horizontal;
else
return ctl.VerticalScroll.Visible ? System.Windows.Forms.ScrollBars.Vertical : System.Windows.Forms.ScrollBars.Horizontal;
}
private void Grid_MouseWheel(object sender, MouseWheelEventArgs e)
{
if (e.Delta > 0)
{
chartzoom.ScaleX += 1;
chartzoom.ScaleY += 1;
}
else
{
chartzoom.ScaleX -= 1;
chartzoom.ScaleY -= 1;
}
}
}
масштабирование не очень эффективно, есть ли способ добавить полосу прокрутки или правильное свойство масштабирования к ней.
XAML код следующим образом:
<Grid MouseWheel="Grid_MouseWheel">
<dvc:Chart Canvas.Top="80" Name="chart" PreviewMouseWheel="Grid_MouseWheel" >
<dvc:Chart.LayoutTransform>
<ScaleTransform x:Name="chartzoom"></ScaleTransform>
</dvc:Chart.LayoutTransform>
<dvc:Chart.Series >
<dvc:ColumnSeries Title="{Binding LineGraphTitledg1}"
ItemsSource="{Binding Data}"
IndependentValueBinding="{Binding Path=Time}"
DependentValueBinding="{Binding Path=DG1}" />
<dvc:ColumnSeries Title="{Binding LineGraphTitledg2 }"
ItemsSource="{Binding Data}"
IndependentValueBinding="{Binding Path=Time}"
DependentValueBinding="{Binding Path=DG2}" />
<dvc:ColumnSeries Title="{Binding LineGraphTitledg3}"
ItemsSource="{Binding Data}"
IndependentValueBinding="{Binding Path=Time}"
DependentValueBinding="{Binding Path=DG3}" />
<dvc:ColumnSeries Title="{Binding LineGraphTitledgunits}"
ItemsSource="{Binding Dataunitvsfuel}"
IndependentValueBinding="{Binding Path=kwh}"
DependentValueBinding="{Binding Path=fuel}"
IsSelectionEnabled="True" />
</dvc:Chart.Series>
</dvc:Chart>
2 ответа
Я вижу, что элемент управления Chart не поддерживает саму прокрутку. Так что завернуть его в ScrollViewer
предоставляет решение. Чтобы это работало, вы установили график на фиксированный или минимальный размер.
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<dvc:Chart Name="chart" MinWidth="500" MinHeight="300">
(...)
</dvc:Chart>
</ScrollViewer>
Оборачивание диаграммы в ScrollView в Xaml позволит вам прокручивать.