2017-06-22 26 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名前空間にある場合は、local:MainViewModelをapp:MainViewModelに変更してください。 –

答えて

1

ローカルの名前空間接頭辞が定義されていません。 MainViewModelがAnnaEmilie名前空間にある場合、を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

アンナの質問に答えているかどうかわかりません。彼女はグラフを見ているだけで、データポイントはありません。大きなマージンが絶対的な位置付けに使われていると私は思う。 –

+0

あなたは正しい@ジャニスですが、私はマージンを使うときにグラフの半分しか見ることができません。しかし、私はそれを削除する場合、私は絶対的な位置を持つことはできませんし、グラフは私がそれが欲しいところで終わることはありません。 – Anna

+0

@Anna相対的位置付けを試してみてください。最も簡単な方法の1つは、要素を「積み重ね」、次にマージンとパディングを使用してグリッドを使用または配置する方法です(https://www.codeproject.com/Articles/140613/WPF-Tutorial-Layout)。 -Panels-Containers-Layout-Trans)。 –

関連する問題