/ / Най-добро оформление за показване на множество графики wpf C # - wpf, оформление, диаграми

Най-добро оформление за показване на няколко диаграми wpf C # - wpf, оформление, графики

Имам странен проблем, който искам да покажа няколко графики по време на изпълнение и няколко пъти по един график. Моля да ми предложите гъвкаво разположение, защото в бъдеще ще има повече графики.

в момента IM използване на мрежата не споделям моя код, защото всичко е разхвърлян, но аз съм ви показва неговото оформление, че аз постигнати с мрежата оформление.

                     ______________________________________
|                 |                  |
|                 |                  |
|     Chart 1     |     Chart 2      |
|                 |                  |
|-----------------|------------------|
|                 |                  |
|                 |                  |
|                 |                  |
|     Chart 3     |     Chart 4      |
|                 |                  |
-------------------------------------

И графиките ще се увеличават в бъдещегъвкаво изложение, което би трябвало да ми позволи да преместя една-единствена графика в центъра и ако има четири графики, те трябва да бъдат показани като тази друга мъдри единична карта, която трябва да бъде показана в центъра.

Отговори:

1 за отговор № 1

Защо не използвате WrapPanel с плъзгач за мащабиране, който контролира размера на графиките.

Ако има една диаграма, ще можете да увеличавате цялото пространство. Ако има някакъв произволен номер, той ще се прехвърли на няколко реда.

Да предположим, че графиките ви са в колекция:

<ListBox ItemsSource="..." ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemsTemplate>
<DataTemplate>
<YourChart Height="{Binding Path=Value, ElementName=_sizeSlider}" Stretch="Uniform" />
</DataTemplate>
</ListBox.ItemsTemplate>
</ListBox>

И плъзгача:

<Slider Name="_sizeSlider" Minimum="25" Maximum="500" Value="80" TickFrequency="1" HorizontalAlignment="Right" Width="113" />

0 за отговор № 2

Какво ще кажеш UniformGrid?


0 за отговор № 3

Примерът е твърде голям, за да бъде публикуван в коментари Скрива всички колони, за да се покаже останалата колона вЦентърът на екрана няма ефект, ако зададете неговото вертикално и хоризонтално подравняване в центъра, той не работи, а намалява размера му и не променя местоположението му ... така че Idea Flop ... предлага ново оформление * XAML

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MultipleChartsLayoutTesting.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">

<Grid x:Name="LayoutRoot">
<UniformGrid x:Name="uniformGrid" Margin="8" Cursor="Hand">
<Label Content="Label1" Background="AliceBlue" Name="lbl1" MouseDown="lbl1_MouseDown"></Label>

<Label Content="Label2" Background="Aqua" Name="lbl2" MouseDown="lbl2_MouseDown"></Label>

<Label Content="Label3" Background="Aquamarine" Name="lbl3" MouseDown="lbl2_MouseDown"></Label>

<Label Content="Label4" Background="Azure" Name="lbl4" MouseDown="lbl1_MouseDown"></Label>

<Label Content="Label5" Background="AliceBlue" Name="lbl5" MouseDown="lbl1_MouseDown"></Label>

<Label Content="Label6" Background="Aqua" Name="lbl6" MouseDown="lbl2_MouseDown"></Label>

<Label Content="Label7" Background="Aquamarine" Name="lbl7" MouseDown="lbl2_MouseDown"></Label>

<Label Content="Label8" Background="Azure" Name="lbl8" MouseDown="lbl1_MouseDown"></Label>
</UniformGrid>
</Grid>

CS FILE

използване на System; използвайки System.Collections.Generic; използване на System.Linq; използване на System.Text; използване на System.Windows; използване на System.Windows.Controls; използване на System.Windows.Data; използване на System.Windows.Documents; използване на System.Windows.Input; използване на System.Windows.Media; използване на System.Windows.Media.Imaging; използване на System.Windows.Shapes; използване на System.Windows.Controls.Primitives;  пространство от имена MultipleChartsLayoutTesting { /// /// Логика на взаимодействие за MainWindow.xaml /// публичен частичен клас MainWindow: Window { публично MainWindow () { this.InitializeComponent (); lbl1.Visibility = Видимост.Скрит; lbl2.Visibility = Видимост.Скрит; lbl3.Visibility = Видимост.Скрит; lbl4.Visibility = Видимост.Скрит; lbl5.Visibility = Видимост.Скрит; lbl6.Visibility = Видимост.Скрит; lbl7.Visibility = Видимост.Скрит; } private void lbl1_MouseDown (подател на обект, MouseButtonEventArgs e) {  lbl1.Background = System.Windows.Media.Brushes.Aqua;  lbl2.Background = System.Windows.Media.Brushes.White;  lbl3.Background = System.Windows.Media.Brushes.White;  lbl4.Background = System.Windows.Media.Brushes.Aqua;  lbl5.Background = System.Windows.Media.Brushes.Aqua;  lbl6.Background = System.Windows.Media.Brushes.White;  lbl7.Background = System.Windows.Media.Brushes.White;  lbl8.Background = System.Windows.Media.Brushes.Aqua;  }    private void lbl2_MouseDown (подател на обект, MouseButtonEventArgs e) {  lbl1.Background = System.Windows.Media.Brushes.White;  lbl2.Background = System.Windows.Media.Brushes.Aqua;  lbl3.Background = System.Windows.Media.Brushes.Aqua;  lbl4.Background = System.Windows.Media.Brushes.White;   lbl5.Background = System.Windows.Media.Brushes.White;  lbl6.Background = System.Windows.Media.Brushes.Aqua;  lbl7.Background = System.Windows.Media.Brushes.Aqua;  lbl8.Background = System.Windows.Media.Brushes.White;  } } }