2017-02-21 122 views

回答

1

你應該設置DefaultTrackerTemplate。這裏給你一個小例子:

<Grid> 
    <oxy:Plot Title="AAA"> 
     <oxy:Plot.Axes> 
      <oxy:LinearAxis Position="Left" Title="Left: " /> 
      <oxy:LinearAxis Position="Bottom" Title="Bottom: " /> 
     </oxy:Plot.Axes> 
     <oxy:Plot.Series> 
      <oxy:LineSeries x:Name="ls" ItemsSource="{Binding Points}"/> 
     </oxy:Plot.Series> 
     <oxy:Plot.DefaultTrackerTemplate> 
      <ControlTemplate> 
       <oxy:TrackerControl Position="{Binding Position}" 
           BorderThickness="1"> 
        <oxy:TrackerControl.Content> 
         <StackPanel > 
          <DockPanel> 
           <TextBlock Text="{Binding XAxis.Title}" Foreground="Red" /> 
           <TextBlock DockPanel.Dock="Right" Text="{Binding DataPoint.X}" Foreground="Red" /> 
          </DockPanel> 
          <DockPanel> 
           <TextBlock Text="{Binding YAxis.Title}" Foreground="Green" /> 
           <TextBlock DockPanel.Dock="Right" Text="{Binding DataPoint.Y}" Foreground="Green" 
             FontWeight="Bold" /> 
          </DockPanel> 
         </StackPanel> 
        </oxy:TrackerControl.Content> 
       </oxy:TrackerControl> 
      </ControlTemplate> 
     </oxy:Plot.DefaultTrackerTemplate> 
    </oxy:Plot> 
</Grid> 

希望它有幫助。

+0

這應該工作,但是它會覆蓋默認模板。我實際上喜歡將軸標題包含在默認模板中(我在問題中的圖片中刪除的區域)。 – Felix

+0

您應該綁定Text屬性。看到答案。我更新了它。 – Ron

1

我想根據Ramin的提示回答我自己的問題。

我挖成的源代碼一點點,並發現有一個TrackerFormatString,我可以改變:

<oxy:LineSeries TrackerFormatString="{}{0}&#x0a;{1}: {2:0.0}&#x0a;{3}: {4:0.0}"/> 

請注意,我的代碼&#x0a;,即換行字符如何輸入XAML 。

另請注意{}在一開始就是XAML中的逃逸字符。

如果在C#中,它只是:

{0}\n{1}: {2:0.0}\n{3}: {4:0.0} 
+0

這也不錯。 – Ron

+0

更多討論請見http://discussion.oxyplot.org/forums/1-general/topics/583-trackerformatstring-question/ – Felix