Я недавно использую OxyPlot для рисования диаграмм для моего проекта WPF. У меня есть проблема с всплывающей подсказкой в серии строк. Прямоугольный прямоугольник всплывающей подсказки находится слишком близко к точке, где находится моя мышь. Мне интересно, есть ли способ изменить положение окна всплывающей подсказки и сделать его дальше от курсора. Большое спасибо. Например, я хотел бы переместить окно всплывающей подсказки (в красном поле) немного вправо.
[Изменить]
Следуя идее Ану, я добавил следующий код, но, похоже, он работает не так, как ожидалось.
В файле xaml.cs я добавил
<UserControl.Resources>
<popups:ScreenPointToOffSetScreenPointConverter x:Key="ScreenPointToOffSetScreenPointConverter"/>
</UserControl.Resources>
А затем измените мой OxyPlot на
<ItemsControl ItemsSource="{Binding AmplitudeDtos}" Margin="0" Name="Amplitude" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid popups:GridUtilities.ItemsPerRow="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type dtoModels:SignalDto}">
<oxy:PlotView Height="Auto" Width="Auto" MinHeight="40" MinWidth="100" HorizontalContentAlignment="Stretch"
FontStyle="Normal" FontFamily="Roboto, Microsoft YaHei" FontSize="8" Model="{Binding PlotModel}" Controller="{Binding PlotController}" Padding="8" Margin="0">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding SignalLoadedCommand}" CommandParameter="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<oxy:PlotView.DefaultTrackerTemplate>
<ControlTemplate>
<oxy:TrackerControl Position="{Binding Position, Converter={StaticResource ScreenPointToOffSetScreenPointConverter}}" LineExtents="{Binding PlotModel.PlotArea}">
<oxy:TrackerControl.Content>
<TextBlock Text="{Binding}" />
</oxy:TrackerControl.Content>
</oxy:TrackerControl>
</ControlTemplate>
</oxy:PlotView.DefaultTrackerTemplate>
</oxy:PlotView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Обратите внимание, что мой OxyPlot находится в шаблоне данных.
Класс ScreenPointToOffSetScreenPointConverter точно такой же, как в примере с Ану.