2017-06-22 93 views
2

我正在使用WPF中的OxyPlot並且有一些問題。我試圖創建一個應用程序,並希望使用OxyPlot創建圖表。一切正常,但情節/數據不會顯示出來。我似乎無法弄清楚爲什麼。在WPF中創建一個OxyPlot

下面是我的一些XAML代碼:

<UserControl x:Class="myNameSpace.MainPanel" 
      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:app="clr-namespace:myNameSpace" 
      xmlns:oxy="http://oxyplot.org/wpf" 
      mc:Ignorable="d" 
      d:DesignHeight="1200" 
      d:DesignWidth="1920"> 
    <UserControl.DataContext> 
     <local:MainViewModel/> 
    </UserControl.DataContext> 
    .... 
    <oxy:Plot Title="{Binding Title}" Margin="760,689,606,228" Width="504" Height="283"> 
      <oxy:Plot.Series> 
       <oxy:LineSeries ItemsSource="{Binding Points}"/> 
      </oxy:Plot.Series> 
     </oxy:Plot> 

和我MainViewPanel類看起來是這樣的:

public class MainViewModel 
     { 
      public MainViewModel() 
      { 
       this.Title = "Example 2"; 
       this.Points = new List<DataPoint> 
           { 
            new DataPoint(0, 4), 
            new DataPoint(10, 13), 
            new DataPoint(20, 15), 
            new DataPoint(30, 16), 
            new DataPoint(40, 12), 
            new DataPoint(50, 12) 
           }; 
      } 

      public string Title { get; private set; } 

      public IList<DataPoint> Points { get; private set; } 
    } 

這是圖表的外觀,當我運行我的代碼就像

Screen shot

+0

您提供的代碼對我來說工作正常。這是一個外部的機會,但我認爲VM中的Points列表是OxyPlot.DataPoint的列表,而不是其他地方的DataPoint列表。 –

+0

忽略我以前的評論,再次看看你的照片,它看起來像標題不具約束力。 –

+2

您確定您的xaml中引用的MainViewModel是正確的類型。我沒有看到定義的本地命名空間前綴。如果MainViewModel位於AnnaEmilie命名空間中,請將本地:MainViewModel更改爲app:MainViewModel –

回答

1

我沒有看到定義的本地命名空間前綴。如果MainViewModel位於AnnaEmilie命名空間中,請將local:MainViewModel更改爲app:MainViewModel

0

刪除邊距,因爲它們會遮蓋圖形可見。

<oxy:Plot Title="{Binding Title}" Width="504" Height="283"> 
    <oxy:Plot.Series> 
     <oxy:LineSeries ItemsSource="{Binding Points}"/> 
    </oxy:Plot.Series> 
</oxy:Plot> 
+0

不確定這個回答Anna的問題。她正在看圖表,它只是沒有任何數據點。我認爲大幅度利潤正在被用於絕對定位。 –

+0

你是對的@JanisS,我現在只能看到圖中的一半,我現在使用邊距(它以前工作過)。但是,如果我刪除它,我不能有絕對的定位,圖形不會結束在我想要的位置。 – Anna

+0

@Anna嘗試使用相對定位。最簡單的方法之一是「疊加」你的元素,然後使用邊距和填充位置,如你所期望的或使用網格(https://www.codeproject.com/Articles/140613/WPF-Tutorial-Layout -Panels的容器,佈局反式)。 –