c# - 如何在 C# 中使用 CompositeTransform?

标签 c# xaml rendertransform

如何在 C# 中编写此 XAML 代码?

<TextBlock Text="..." RenderTransformOrigin="0.5,0.5">
                    <TextBlock.RenderTransform>
                        <CompositeTransform TranslateY="-25"/>
                    </TextBlock.RenderTransform>
                </TextBlock>

我这样试过:

private TextBlock dots;
dots = new TextBlock();
dots.Text = "...";
dots.RenderTransformOrigin = new Point(0.5, 0.5); 
(dots.RenderTransform as CompositeTransform).TranslateY = 20;

但是我得到一个System.NullReferenceException。 我也这样试过:

var ct = (CompositeTransform)dots.RenderTransform;
            ct.TranslateY = 20;

但我得到一个System.InvalidCastException(无法将类型为“System.Windows.Media.MatrixTransform”的对象转换为类型“System.Windows.Media.CompositeTransform”。)

提前致谢!

最佳答案

如果您从头开始创建一个新控件,它的 RenderTransform 属性将是一个 Identity MatrixTransform,因此您不能强制转换它到 CompositeTransform。你必须这样做:

dots.RenderTransform = new CompositeTransform { TranslateY = 20 };

关于c# - 如何在 C# 中使用 CompositeTransform?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116532/

相关文章:

c# - Windows 7 和 Windows XP 中的文本框之间是否存在根本差异

wpf - 修改 ItemsControl 中项目的 Z 索引

wpf - 更改 UIElement 的角度

WPF 转换——旋转和切换宽度/高度?

c# - 在 Windows Phone 8 中更改系统音量

c# - 如何使用 LINQ 查询选择静态文本?

c# - 更改某些 ListView 列的颜色

c# - WPF 数据网格 : field value in Edit mode not available outside row

c# - Windows 8 Metro 风格应用程序的图表控件

xaml - UI缩放以实现WXGA分辨率