OxyPlot: Customize Tooltip

Я использую OxyPlot в своем проекте для отображения графиков. И мне надо изменить дефолтное поведение всплывающего тултипа при нажатии на любую точку на графике.

Сейчас я сделал простую форму для тестов. И в ее коде изменил дефолтный темплейт тултипа, чтобы отображать в нем текст и кнопку.

Мои кастомные классы для формы и тултипа:

public class PlotViewTest : PlotView
{ }

public class TestTracker : TrackerControl
{
    public TestTracker()
    {
        CanCenterHorizontally = false;
        CanCenterVertically = false;
    }
}

Мой код для WPF формы:

<controlers:PlotViewTest Model="{Binding MyModel}">
    <controlers:PlotViewTest.DefaultTrackerTemplate>
        <ControlTemplate>
            <controlers:TestTracker Position="{Binding Position}">
                <Grid Margin="15">
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <TextBlock Margin="5" Text="Hello world!"/>
                    <Button Grid.Row="1" Margin="5" Content="Start"/>
                </Grid>
            </controlers:TestTracker>
        </ControlTemplate>
    </controlers:PlotViewTest.DefaultTrackerTemplate>
</controlers:PlotViewTest>

Форма, что получилась в итоге:

TestWindow.png

Но пока что остаеться поведение, которое я хочу изменить.

  1. Тултип отображаеться только, если нажать и держать левую кнопку миши. Если кнопку отпустить, то тултип тоже пропадет. Но мне нужно, чтобы после нажатия левой кнопкой миши тултип отображался постоянно. Если я нажму на другую точку, то для нее отобразиться свой тултип с текстом и кнопкой. Если же я нажму на пустом месте графика, то тултип должен пропасть.
  2. Сейчас тултип отображаеться, если задержать кнопку нажатой не только над красной точкой, но и над синей линией. Но мне нужно, чтобы тултип отображался только при нажатии на красную точкую

Как я могу изменить стандартную логику тултипа, чтобы получить нужную ??


Ответы (0 шт):