Серия RadCartesian Bar - PullRequest
       10

Серия RadCartesian Bar

0 голосов
/ 09 января 2019

Я использую серию RadCartesian Bar и хотел узнать, знает ли кто-нибудь, как отрегулировать вертикальную высоту точек / прямоугольников данных? (Я не могу прикрепить изображения, так как StackOverflow говорит, что у меня недостаточно очков)

Но будет гиперссылка образец решения, предоставленного Мартином в Telerik.

<UserControl x:Class="WpfApp6.ScatterBarVisual"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:WpfApp6"
         mc:Ignorable="d" 
         d:DesignHeight="450" d:DesignWidth="800">
    <Canvas Width="2" Height="2">
        <Rectangle Height="20" Fill="Blue" x:Name="visual" />
    </Canvas>

   private void ChartPlotAreaClipChanged(object sender, EventArgs e)
    {
        this.UpdateVisualHeight();
    }

    private void UpdateVisualHeight()
    {
        if (this.Chart != null)
        {
            DataPoint dp = (DataPoint)this.DataContext;
            double highPosition = dp.LayoutSlot.X;
            double lowPosition = this.Chart.ConvertDataToPoint(new DataTuple(this.LowValue, null)).X;

            var length = highPosition - lowPosition;
            this.visual.Width = length;
        }            
    }

    public ScatterBarVisual()
    {
        InitializeComponent();
    }

Код моего окна:

namespace WpfApp6
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            var source = new ObservableCollection<PlotInfo>();
            Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                double high = r.Next(100, 300);
                double low = high - r.Next(10, 150);
                source.Add(new PlotInfo() { Y = i, High = high, Low = low });
            }

            this.DataContext = source;
        }
    }

    public class PlotInfo
    {
        public double High { get; set; }
        public double Low { get; set; }
        public double Y { get; set; }
    }
}
...