知道鼠标在模型中的位置,如何评估 x 轴值?

问题描述

我使用的是 MVVM 模式,通过鼠标行为的附件,我在模型中的 Plot 上有鼠标位置。

我使用 DateTimeAxis 作为 x 轴,我想从我的 x 位置获取 x 轴值,但我不知道如何继续。

如果我不使用 MVVM 模式,完成我想要的一个好方法是:

XAML

<oxy:Plot x:Name="TopPlot" MouseMove="TopPlot_MouseMove" >
   <oxy:Plot.Axes>
      <oxy:DateTimeAxis x:Name="DateAxis" Position="Bottom" />
      <oxy:LinearAxis x:Name="ValueAxis" Title="Value" Position="Left"/>
   </oxy:Plot.Axes>
</oxy:Plot>

背后的代码:

private void TopPlot_MouseMove(object sender,System.Windows.Input.MouseEventArgs e)
{
   var x_axis = this.TopPlot.ActualModel.DefaultXAxis;
   var y_axis = this.TopPlot.ActualModel.DefaultYAxis;
   var point = OxyPlot.Axes.Axis.InverseTransform(new ScreenPoint(e.GetPosition(TopPlot).X,e.GetPosition(TopPlot).Y),x_axis,y_axis);
}

我尝试对 Plot 的属性模型进行 OneWayToSource 绑定(以便我可以在非 MVVM 模型中执行某些链接),但是我在我的属性中收到的值为 {{1} }.

XAML

null

我的模型中的代码:

<oxy:Plot  Model="{Binding Path=Plot_Model,Mode=OneWayToSource}" >
   <oxy:Plot.Series>
      <oxy:LineSeries  ItemsSource="{Binding m_Series,UpdateSourceTrigger=PropertyChanged}"/>
   </oxy:Plot.Series>
   <oxy:Plot.Axes>
      <oxy:DateTimeAxis Position="Bottom"/>
      <oxy:LinearAxis Position="Left" Title="Value"/>
   </oxy:Plot.Axes>
   <i:Interaction.Behaviors>
      <mouseMoveMvvm:MouseBehaviour MouseX="{Binding PlotX,Mode=OneWayToSource}" 
                                    MouseY="{Binding PlotY,Mode=OneWayToSource}"/>
   </i:Interaction.Behaviors>                
</oxy:Plot>

有人对如何进行有任何建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)