Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于xaml代码为转换组在代码中构造wpf_C#_Wpf_Xaml - Fatal编程技术网

C# 基于xaml代码为转换组在代码中构造wpf

C# 基于xaml代码为转换组在代码中构造wpf,c#,wpf,xaml,C#,Wpf,Xaml,我在基于给定的xaml代码构造代码内程序时遇到问题。特别是变换组部分和触发部分 <Window x:Class="newStackOverflow.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.micr

我在基于给定的xaml代码构造代码内程序时遇到问题。特别是变换组部分和触发部分

<Window x:Class="newStackOverflow.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:newStackOverflow"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Storyboard x:Key="Storyboard1">
        <DoubleAnimationUsingKeyFrames 
            Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"
            Storyboard.TargetName="rectangle">
            <EasingDoubleKeyFrame KeyTime="0:0:10" Value="300"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Canvas x:Name="canvas" VerticalAlignment="Stretch" Background="Green">
        <Rectangle x:Name="rectangle"
                   Fill="#FFF4F4F5" Stroke="Black"
                   Height="100" Width="100"
                   Canvas.Left="10" Canvas.Top="10"
                   RenderTransformOrigin="0.5,0.5">
            <Rectangle.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleX="1"/>
                    <TranslateTransform X="50" Y="20"/>
                </TransformGroup>
            </Rectangle.RenderTransform>
        </Rectangle>
    </Canvas>
    <Button Content="Button"
            HorizontalAlignment="Center"
            VerticalAlignment="Center"
            Padding="10 5" Margin="10" Grid.Row="1">
        <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
            </EventTrigger>
        </Button.Triggers>
    </Button>

</Grid>


在开发代码内部分时,您能给出一些想法吗?提前感谢!:这些是我的代码。当我尝试这些代码时,它说s.Begin(矩形)异常用户未处理

  public partial class MainWindow : Window
{
    private Storyboard s;

    public MainWindow()
    {
        InitializeComponent();


        Button button = new Button();
        button.Height = 28;
        button.Width = 58;
        button.HorizontalAlignment = HorizontalAlignment.Center;
        button.VerticalAlignment = VerticalAlignment.Center;
        button.Content = "Button";

        button.Name = "button";

        this.RegisterName(button.Name, button);

        Rectangle rectangle = new Rectangle();
        rectangle.Width = 100;
        rectangle.Height = 100;
        rectangle.Fill = new SolidColorBrush(Colors.White);
        rectangle.Stroke = new SolidColorBrush(Colors.Black);
        Canvas.SetLeft(rectangle, 10);
        Canvas.SetTop(rectangle,10);
        canvas1.Children.Add(rectangle);

        rectangle.Name = "rectangle";


        TranslateTransform tt = new TranslateTransform();
        ScaleTransform st = new ScaleTransform();


        TransformGroup tg = new TransformGroup();
        tg.Children.Add(tt);
        tg.Children.Add(st);

        button.RenderTransform = tg;


        Duration duration = new Duration(TimeSpan.FromMilliseconds(10));
        DoubleAnimationUsingKeyFrames myDoubleAnim = new DoubleAnimationUsingKeyFrames();
        EasingDoubleKeyFrame myDoubleKey = new EasingDoubleKeyFrame();



        Storyboard s = new Storyboard();
        Storyboard.SetTargetName(myDoubleAnim, button.Name);
        Storyboard.SetTargetProperty(myDoubleAnim, new PropertyPath("RenderTransform.Children[3].Y"));

        myDoubleKey.KeyTime = KeyTime.FromPercent(1);
        myDoubleKey.Value = 300;
        myDoubleAnim.KeyFrames.Add(myDoubleKey);
        s.Children.Add(myDoubleAnim);

        s.Begin(rectangle);
        //button.Loaded += new RoutedEventHandler(buttonLoaded);


    }

在不知道所述代码要做什么的情况下,很难给出代码……我想设置一个矩形的动画,以移动我之前设置的一定数量的坐标。我的矩形位于(x=0,y=0)的位置。我想点击一个按钮,使其在位置(x=150,y=230)上以100毫秒的间隔移动。因此,单击一次,它将在第一个100毫秒处转到(10,25),第二个100毫秒处转到(20,35),依此类推,直到矩形到达最终位置(x=150,y=230)…您尝试了什么?显示一些代码?你可以在下面的代码中参考我的代码。谢谢:)有什么例外?可能是复制粘贴确切的text.System.invalidoOperationException。详细信息显示“无法解析属性路径”RenderTransform.Children[3].Y中的所有属性引用。这是您的问题,您有[3],第四个元素,但您只向RenderTransform添加了2个元素。我已更改为RenderTransform.Children[2].Y,但随后显示另一个错误,“System.InvalidOperationException:'无法解析属性路径'RenderTransform.Children[2].scaleY'中的所有属性引用。”并且它高亮显示s.Begin(矩形);part.index基于0,0表示第一个元素,1表示第二个元素。