Как изменить строковый формат значения трека Oxyplot?

Если я изменю строковый формат оси, он будет работать для оси (см. черный кружок на картинке). Но как я могу изменить строковый формат значения дорожки (красный кружок)?

введите здесь описание изображения


person Felix    schedule 21.02.2017    source источник
comment
См. oxyplot.userecho.com/en/communities/1/topics. /   -  person Ian Botham    schedule 27.12.2020


Ответы (2)


Вы должны установить 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>

Надеюсь, поможет.

person Ron    schedule 21.02.2017
comment
Это должно работать, но перезаписывает шаблон по умолчанию. Мне действительно нравится, чтобы заголовки осей были включены, как в шаблон по умолчанию (область, которую я стер на картинке в своем вопросе). - person Felix; 21.02.2017
comment
Вы должны привязать свойство Text. Смотрите ответ. Я обновил его. - person Ron; 21.02.2017

Я хотел бы ответить на свой вопрос, основанный на намеке Рамина.

Я немного покопался в исходном коде и обнаружил, что есть TrackerFormatString, который я могу изменить:

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

Обратите внимание на &#x0a; в моем коде, как символ новой строки вводится в XAML.

Также обратите внимание на {} в самом начале, это своего рода управляющий символ в XAML.

если в С#, это просто:

{0}\n{1}: {2:0.0}\n{3}: {4:0.0}
person Felix    schedule 21.02.2017
comment
Это тоже приятно. - person Ron; 21.02.2017
comment
больше обсуждений на discussion.oxyplot.org/forums/1- общее/темы/ - person Felix; 17.11.2017
comment
Текущая ссылка на обсуждение - oxyplot.userecho.com/en /сообщества/1/темы/ - person Ian Botham; 27.12.2020