gpt4 book ai didi

c# - 如何旋转 WinRT Xaml Toolkit 柱形图的标签?

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:48 32 4
gpt4 key购买 nike

我有以下 XAML 定义:

<Charting:Chart x:Name="ColumnChart"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="Auto"
Height="Auto"
Padding="50"
Title="100 random numbers">
<Charting:ColumnSeries Title="Skills"
IndependentValuePath="Name"
DependentValuePath="Pts"
IsSelectionEnabled="True">

</Charting:ColumnSeries>
</Charting:Chart>

如何旋转标签(比如 -90 度)以使其更具可读性?

enter image description here

最佳答案

可以旋转标签。它需要几个步骤,不幸的是,由于 WinRT XAML 布局中缺少一个功能,可能需要一个自定义类。

找到核心思想here .

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Charting:Chart x:Name="ColumnChart"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Padding="50"
Title="100 random numbers">
<Charting:ColumnSeries Title="Skills" x:Name="theColumnSeries"
IndependentValuePath="Name"
DependentValuePath="Pts"
IsSelectionEnabled="True">
<Charting:ColumnSeries.IndependentAxis>
<Charting:CategoryAxis Orientation="X">
<Charting:CategoryAxis.AxisLabelStyle>
<Style TargetType="Charting:AxisLabel">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Charting:AxisLabel">
<TextBlock Text="{TemplateBinding FormattedContent}">
<TextBlock.lay
<TextBlock.RenderTransform>
<RotateTransform Angle="-60" />
</TextBlock.RenderTransform>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Charting:CategoryAxis.AxisLabelStyle>
</Charting:CategoryAxis>
</Charting:ColumnSeries.IndependentAxis>
</Charting:ColumnSeries>
</Charting:Chart>
</Grid>

我使用的C#代码:

public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();

this.Loaded += MainPage_Loaded;
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
var rnd = new Random(444);
ObservableCollection<Demo> values = new ObservableCollection<Demo>();
for (int i = 0; i < 15; i++)
{
values.Add(new Demo() { Name = (rnd.NextDouble() * 100).ToString(), Pts = i });
}


((ColumnSeries)ColumnChart.Series[0]).ItemsSource = values;
}
}

class Demo
{
public string Name { get; set; }
public double Pts { get; set; }
}

但是,不幸的是,这并不是您想要的。问题是没有像 WPF 中那样存在的 LayoutTransform。如果您按上面所示运行代码,标签会旋转,但它们会与其他内容重叠。

Rotation not right

博客作者写了一个LayoutTransformer可能有助于解决问题的类,尽管它是为 Silverlight 设计的(因此它可能是可移植的并且可以与 WinRT XAML 一起使用)。

关于c# - 如何旋转 WinRT Xaml Toolkit 柱形图的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30636496/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com