标签: layouttransform

应用LayoutTransform与RenderTransform的性能影响?

我已经处理过LayoutTransform和RenderTransform,我知道每个都适合我在以前的项目中找到的特定场景.

但是,从性能角度和使用WPF分析工具时,对于一个实例,哪一个对UI性能的影响较小?

wpf performance layouttransform rendertransform

8
推荐指数
2
解决办法
3635
查看次数

将LayoutTransform设置为TranslateTransform或MatrixTransform时,Canvas子的翻译无法正常工作

我有一个简单的应用程序,包含一个包含Canvas(rootCanvas)的窗口.我试图添加另一个Canvas(测试)并将不同的变换应用于子画布的LayoutTransform.这都是以编程方式完成的,而不是使用XAML.

有些转型正在发挥作用,而其他转型则不如下:

  • 当LayoutTranform设置为RotateTransform时,它按预期工作.
  • 当它设置为TranslateTransform时,似乎没有应用转换,并且测试Canvas仍然位于rootCanvas的顶角
  • 当它设置为通过应用旋转然后平移而构造的MatrixTransform时,仅显示应用旋转.

代码如下:

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

wpf layouttransform

5
推荐指数
1
解决办法
3558
查看次数

WPF - 令人困惑的 DataTrigger/DoubleAnimation 行为

我正在尝试根据我班级上布尔值的绑定来为 a的ScaleY属性设置动画。当值第一次被(应用程序首次启动时)视为 false时,当我第一次在复选框的选中事件中将其更改为 true时,动画发生,但当我在同一个复选框的未选中事件中将其设置为 false 时,不会发生动画。LayoutTransformDataTriggerViewModelDataTrigger

下面列出了我正在做的事情的简化版本。

ViewModel 类非常简单,包含一个DependencyProperty名为 Selected 的布尔值。

    public class VM : DependencyObject
{
    public bool Selected
    {
        get { return (bool)GetValue(SelectedProperty); }
        set { SetValue(SelectedProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Selected.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty SelectedProperty =
        DependencyProperty.Register("Selected", typeof(bool), typeof(VM), new UIPropertyMetadata(false));
}
Run Code Online (Sandbox Code Playgroud)

Window.xaml包含一个按钮和一个复选框。当复选框被选中时,当它被取消选中时,我将 ViewModel 的“Selected”属性设置为 true 和 false。这是 xaml 和代码隐藏的代码。

<Window x:Class="DataTriggers.Window1" …
Run Code Online (Sandbox Code Playgroud)

wpf datatrigger layouttransform

1
推荐指数
1
解决办法
6445
查看次数