[英]WinRTXAML chart, control style for top label, code
我正在使用WinRTXamlToolkit.Controls.DataVisualization.Charting.Chart對象,其相關軸整數為0/1,並且具有獨立的時間軸。 我想隱藏或旋轉圖表頂部的標簽。 在Axis(圖表軸)或系列(LineSeries)上找到樣式嗎? 我的圖表是通過以下代碼段完全配置的:
編輯1/30 / 2017-3:添加了托管XAML頁面。
<Page
x:Class="HomeControl.Views.Historical"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:Charting="using:WinRTXamlToolkit.Controls.DataVisualization.Charting"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HomeControl.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Charting:Chart x:Name="LineChart" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalAlignment="Top" Height="500">
</Charting:Chart>
</Grid>
</Page>
編輯1/30 / 2017-2:添加了剩余代碼...
var lowDate = records.First().taken.DateTime;
var highDate = records.Last().taken.DateTime;
var allDeviceTelemetry = records.GroupBy(t => t.sensorid).OrderBy(g => g.Key);
var axisTaken = new DateTimeAxis()
{
Title = "Taken",
Orientation = AxisOrientation.X,
IntervalType = DateTimeIntervalType.Minutes,
Interval = 5,
Minimum = lowDate,
Maximum = highDate,
};
LineChart.Axes.Add(axisTaken);
LineChart.Axes.Add(new LinearAxis()
{
Title = "State",
Orientation = AxisOrientation.Y
});
foreach (var deviceTelemetry in allDeviceTelemetry)
{
var series = new LineSeries()
{
Title = deviceTelemetry.Key, // sensorid
IndependentValuePath = "taken",
DependentValuePath = "sensorvalueint",
ItemsSource = deviceTelemetry
};
LineChart.Series.Add(series);
}
我玩過其他一些樣式,例如間隔和軸標題,只是想不出數據點標簽樣式在哪里?
編輯1/30/2017:這是樹,帶有突出顯示的對象(底部為TextBlock)。 我需要弄清楚如何通過代碼設置“ AxisLabel”,“ Panel”,“ AxisGrid”或“ CategoryAxis”的樣式。
任何提示將不勝感激!
-約翰
我已經解決了我的問題,但沒有達到我期望的結果-更好。
經過大量的試驗后,我了解了有關WinRTXAML圖表的一些知識。 這些觀察純粹是從編碼的角度出發,因為我沒有在頁面中使用靜態XAML。 我是新手,所以如果有人知道這些學習不完整或被誤導了,請輸入以下提示:
將這些知識應用於我的原始問題,這就是發生的事情。 盡管我已經預定義了DateTime軸,但是我輸入的獨立軸的數據類型是DateTimeOffset。 此值被解釋為字符串值,因為它不是DateTime(即沒有隱式轉換)。 這導致圖表生成一個CategoryAxis,將其分配給系列,然后將其放置在圖表的頂部。 不了解這種情況的發生,我不希望該頂部軸上的標簽,因此我試圖抑制它們,但是我找不到該軸,因為它是在發生AFTER數據綁定之前才創建的。
解決方案 :設置數據類型為DateTime的“ taken”值,這會使圖表[顯式或隱式地]與DateTimeAxis對齊。 優化:直接將軸分配給該系列,不必費心將它們添加到Chart.Axes屬性。
感謝@jstreet和@FilipSkakun花時間研究此問題,感謝您的關注和耐心。
-約翰
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.