Wib*_*bbs 5 wpf layouttransform
我有一个简单的应用程序,包含一个包含Canvas(rootCanvas)的窗口.我试图添加另一个Canvas(测试)并将不同的变换应用于子画布的LayoutTransform.这都是以编程方式完成的,而不是使用XAML.
有些转型正在发挥作用,而其他转型则不如下:
代码如下:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Canvas rootCanvas = (Canvas)Application.Current.Windows[0].FindName("canvas1");
Canvas test = new Canvas();
test.Width = 10;
test.Height = 10;
test.Background = Brushes.Aqua;
// this works
//test.LayoutTransform = new RotateTransform(45);
// this doesn't
//test.LayoutTransform = new TranslateTransform(40, 40);
// only the rotate part of this works
Matrix matrix = new Matrix();
matrix.Rotate(45);
matrix.Translate(40, 40);
test.LayoutTransform = new MatrixTransform(matrix);
rootCanvas.Children.Add(test);
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人能解释我在这里做错了什么,我将非常感激,因为我不明白为什么翻译似乎没有像我期望的那样起作用.
提前致谢,
Wibbs
LPL*_*LPL 10
请阅读FrameworkElement.LayoutTransform属性中的备注.
但是,LayoutTransform忽略TranslateTransform操作.
使用UIElement.RenderTransform属性来应用TranslateTransform
.
归档时间: |
|
查看次数: |
3558 次 |
最近记录: |