首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight DataGrid报头RotateTransform编程实现

Silverlight DataGrid报头RotateTransform编程实现
EN

Stack Overflow用户
提问于 2013-09-16 18:31:16
回答 1查看 593关注 0票数 0

如何在Silverlight上使用代码后面的旋转转换来旋转DataGrid中的标头文本?我没有概念,但是当我尝试使用这段代码时,是不起作用的。

代码语言:javascript
复制
    private DataGridTemplateColumn CreateColumn(int index, string header)
    {
        string cellTemp = string.Format(@"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" 
            xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
             <CheckBox />
        </DataTemplate>", index);

        DataGridTemplateColumn column = new DataGridTemplateColumn();
        column.Header = header;
        column.CellTemplate = (DataTemplate)XamlReader.Load(cellTemp);

        TransformGroup traGrp = new TransformGroup(){};
        traGrp.Children.Add(new RotateTransform(){ Angle = -35});

        Style transofrm = new Style(typeof(DataGridTemplateColumn));
        transofrm.Setters.Add(new Setter(TextBlock.RenderTransformProperty, traGrp));
        column.HeaderStyle = transofrm;

        return column;
    }

知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 08:59:20

好的给你,

将此资源添加到用户控件中,

代码语言:javascript
复制
<UserControl.Resources>
        <Style TargetType="sdk:DataGridColumnHeader">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="sdk:DataGridColumnHeader">
                        <Canvas x:Name="RootElement" Height="60" HorizontalAlignment="Stretch">
                            <ContentPresenter Canvas.Left="15" Canvas.Top="50" Content="{TemplateBinding Content}">
                                <ContentPresenter.RenderTransform>
                                    <RotateTransform Angle="-90"/>
                                </ContentPresenter.RenderTransform>
                            </ContentPresenter>
                        </Canvas>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

在codebehind.cs,你可以这样做,

代码语言:javascript
复制
private DataGridTemplateColumn CreateColumn(int index, string header)
        {
            string cellTemp = string.Format(@"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" 
            xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
             <CheckBox />
             </DataTemplate>", index);
            DataGridTemplateColumn column = new DataGridTemplateColumn();
            column.Header = header;
            column.HeaderStyle = Resources["Template"] as Style;
            column.CellTemplate = (DataTemplate)XamlReader.Load(cellTemp);


            return column;
        }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18834867

复制
相关文章

相似问题

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