首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visiblox -缩放轴标题以适应可用空间

Visiblox -缩放轴标题以适应可用空间
EN

Stack Overflow用户
提问于 2013-05-11 06:29:25
回答 1查看 231关注 0票数 0

我的Visiblox图表会缩小以适应可用的空间,有时轴标题会缩小得太多,以至于被截断。所以我想我只需要为LinearAxis创建一个新的ControlTemplate,使用Blend的起始代码作为模板。

我在AxisLabel文本块周围添加了一个ViewBox,但它不能正常工作。对于网格的行和列,您需要做一些有趣的事情,因为代码需要足够通用才能在水平或垂直轴上工作。经过大量的试验和错误,以及一些外部支持,我有了一个工作模板,它缩小了我的Axis标题以适应可用的空间。请参阅下面的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 06:29:25

代码语言:javascript
复制
<ControlTemplate TargetType="{x:Type charts:LinearAxis}" x:Key="LinearAxisTemplate">
    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
        <Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}">
            <Grid x:Name="LabelsContainer"/>
            <Canvas x:Name="BehaviourCanvas"/>
            <Viewbox Stretch="Uniform" StretchDirection="DownOnly" 
                         Grid.Row="{Binding (Grid.Row), ElementName=AxisLabelContainer}" 
                         Grid.Column="{Binding (Grid.Column), ElementName=AxisLabelContainer}">
                <Visiblox_Charts_Primitives:TransposePanel x:Name="AxisLabelContainer">
                    <TextBlock x:Name="AxisLabel" Style="{TemplateBinding TitleStyle}" Text="{TemplateBinding Title}" />
                </Visiblox_Charts_Primitives:TransposePanel>
            </Viewbox>
            <Line x:Name="AxisLine" Style="{TemplateBinding AxisLineStyle}" Stretch="Fill"/>
        </Grid>
    </Border>
</ControlTemplate>

只需将此模板应用于任何图表中的任何LinearAxis,标题就会缩小到合适的大小。您可以轻松地将其调整为适用于任何类型的轴。

代码语言:javascript
复制
(XAxis as LinearAxis).Template = MyChart.FindResource("LinearAxisTemplate") as System.Windows.Controls.ControlTemplate;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16491682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档