使按钮以WPF形式在XAML中旋转
我需要使一个按钮在按下时旋转,但我无法找出我的代码出了什么问题。我今天才开始使用XAML,所以这可能是非常明显的。 当我运行代码时,在运行时会出现以下错误: PresentationFramework.dll中首次出现类型为“System.Windows.Markup.XamlParseException”的异常 其他信息:在车辆系统中使用初始化器。Windows。控件。按钮heeft。regelnummer 63 en>regelpositie 15 这是我目前掌握的代码:使按钮以WPF形式在XAML中旋转,wpf,xaml,button,Wpf,Xaml,Button,我需要使一个按钮在按下时旋转,但我无法找出我的代码出了什么问题。我今天才开始使用XAML,所以这可能是非常明显的。 当我运行代码时,在运行时会出现以下错误: PresentationFramework.dll中首次出现类型为“System.Windows.Markup.XamlParseException”的异常 其他信息:在车辆系统中使用初始化器。Windows。控件。按钮heeft。regelnummer 63 en>regelpositie 15 这是我目前掌握的代码: <Butto
<Button x:Name="ArrowButton" HorizontalAlignment="Left" Margin="148,198,0,0" VerticalAlignment="Top" Width="360" Height="360">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="UpArrow">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="UpArrow"
Storyboard.TargetProperty="(RenderTransform).(RotateTransform.Angle)"
From="0" To="360" Duration="0:0:2"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB"/>
<GradientStop Color="#00CDCDCD"/>
</LinearGradientBrush>
</Button.Background>
<Image Source="upArrow.png" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center" Height="360" Width="360" RenderTransformOrigin="0.5,0.5" MouseDown="Image_MouseDown">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
我的建议是,制作动画时,不要试图在代码中说明如何制作动画!你已经准备好了。(当你制作图形时,你不需要通过代码来绘制它们,而是通过绘制来绘制,与动画一样)只有在真正需要的时候,才编辑你的代码来添加画龙点睛的效果 刚刚用于工作的混合:
<Window.Resources>
<Storyboard x:Key="OnClick1">
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="UpArrow">
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="-360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ArrowButton">
<BeginStoryboard Storyboard="{StaticResource OnClick1}"/>
</EventTrigger>
</Window.Triggers>
<Grid x:Name="MainGrid" Grid.Row="0">
<Button x:Name="ArrowButton" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
<Image x:Name="UpArrow" Width="30" Height="30" RenderTransformOrigin="0.5, 0.5" >
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
</Grid>
我的建议是,制作动画时,不要试图在代码中说明如何制作动画!你已经准备好了。(当你制作图形时,你不需要通过代码来绘制它们,而是通过绘制来绘制,与动画一样)只有在真正需要的时候,才编辑你的代码来添加画龙点睛的效果 刚刚用于工作的混合:
<Window.Resources>
<Storyboard x:Key="OnClick1">
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="UpArrow">
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="-360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ArrowButton">
<BeginStoryboard Storyboard="{StaticResource OnClick1}"/>
</EventTrigger>
</Window.Triggers>
<Grid x:Name="MainGrid" Grid.Row="0">
<Button x:Name="ArrowButton" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
<Image x:Name="UpArrow" Width="30" Height="30" RenderTransformOrigin="0.5, 0.5" >
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
</Grid>
我的建议是,制作动画时,不要试图在代码中说明如何制作动画!你已经准备好了。(当你制作图形时,你不需要通过代码来绘制它们,而是通过绘制来绘制,与动画一样)只有在真正需要的时候,才编辑你的代码来添加画龙点睛的效果 刚刚用于工作的混合:
<Window.Resources>
<Storyboard x:Key="OnClick1">
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="UpArrow">
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="-360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ArrowButton">
<BeginStoryboard Storyboard="{StaticResource OnClick1}"/>
</EventTrigger>
</Window.Triggers>
<Grid x:Name="MainGrid" Grid.Row="0">
<Button x:Name="ArrowButton" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
<Image x:Name="UpArrow" Width="30" Height="30" RenderTransformOrigin="0.5, 0.5" >
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
</Grid>
我的建议是,制作动画时,不要试图在代码中说明如何制作动画!你已经准备好了。(当你制作图形时,你不需要通过代码来绘制它们,而是通过绘制来绘制,与动画一样)只有在真正需要的时候,才编辑你的代码来添加画龙点睛的效果 刚刚用于工作的混合:
<Window.Resources>
<Storyboard x:Key="OnClick1">
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="UpArrow">
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="-360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ArrowButton">
<BeginStoryboard Storyboard="{StaticResource OnClick1}"/>
</EventTrigger>
</Window.Triggers>
<Grid x:Name="MainGrid" Grid.Row="0">
<Button x:Name="ArrowButton" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
<Image x:Name="UpArrow" Width="30" Height="30" RenderTransformOrigin="0.5, 0.5" >
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
</Grid>
一个问题是,您试图将目标
向上旋转,但没有具有此名称的元素,因此请命名您的图像
<Image x:Name="UpArrow" ... />
因此,您的XAML应该如下所示:
<Button x:Name="ArrowButton" HorizontalAlignment="Left" Margin="148,198,0,0" VerticalAlignment="Top" Width="360" Height="360">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="UpArrow"
Storyboard.TargetProperty="RenderTransform.Children[2].(RotateTransform.Angle)"
From="0"
To="360"
Duration="0:0:2"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB"/>
<GradientStop Color="#00CDCDCD"/>
</LinearGradientBrush>
</Button.Background>
<Image
x:Name="UpArrow"
Source="upArrow.png"
Stretch="Fill"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Height="360"
Width="360"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
一个问题是,您试图将目标向上旋转,但没有具有此名称的元素,因此请命名您的图像
<Image x:Name="UpArrow" ... />
因此,您的XAML应该如下所示:
<Button x:Name="ArrowButton" HorizontalAlignment="Left" Margin="148,198,0,0" VerticalAlignment="Top" Width="360" Height="360">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="UpArrow"
Storyboard.TargetProperty="RenderTransform.Children[2].(RotateTransform.Angle)"
From="0"
To="360"
Duration="0:0:2"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB"/>
<GradientStop Color="#00CDCDCD"/>
</LinearGradientBrush>
</Button.Background>
<Image
x:Name="UpArrow"
Source="upArrow.png"
Stretch="Fill"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Height="360"
Width="360"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
一个问题是,您试图将目标向上旋转,但没有具有此名称的元素,因此请命名您的图像
<Image x:Name="UpArrow" ... />
因此,您的XAML应该如下所示:
<Button x:Name="ArrowButton" HorizontalAlignment="Left" Margin="148,198,0,0" VerticalAlignment="Top" Width="360" Height="360">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="UpArrow"
Storyboard.TargetProperty="RenderTransform.Children[2].(RotateTransform.Angle)"
From="0"
To="360"
Duration="0:0:2"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB"/>
<GradientStop Color="#00CDCDCD"/>
</LinearGradientBrush>
</Button.Background>
<Image
x:Name="UpArrow"
Source="upArrow.png"
Stretch="Fill"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Height="360"
Width="360"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
一个问题是,您试图将目标向上旋转,但没有具有此名称的元素,因此请命名您的图像
<Image x:Name="UpArrow" ... />
因此,您的XAML应该如下所示:
<Button x:Name="ArrowButton" HorizontalAlignment="Left" Margin="148,198,0,0" VerticalAlignment="Top" Width="360" Height="360">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="UpArrow"
Storyboard.TargetProperty="RenderTransform.Children[2].(RotateTransform.Angle)"
From="0"
To="360"
Duration="0:0:2"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFEBEBEB"/>
<GradientStop Color="#00CDCDCD"/>
</LinearGradientBrush>
</Button.Background>
<Image
x:Name="UpArrow"
Source="upArrow.png"
Stretch="Fill"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Height="360"
Width="360"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Button>
按钮
或图像
内部按钮?@dkozl我试图旋转按钮,但内部图像为圆形,因此,在不剪切部分图像的情况下也可以使用。今天刚开始使用XAML,我希望您在编写一些XAML代码之前有时间阅读WPF的许多其他高级和重要概念。我没有看到任何名为“UpArrow”的元素
在您的代码中?按钮
或图像
内部按钮?@dkozl我试图旋转按钮,但内部图像为圆形,因此,在不剪切部分图像的情况下也可以使用。今天刚开始使用XAML,我希望您在编写一些XAML代码之前有时间阅读WPF的许多其他高级和重要概念。我没有看到任何名为“UpArrow”的元素
在您的代码中?按钮
或图像
内部按钮?@dkozl我尝试旋转按钮,但内部图像是圆形的,因此也可以不切割图像的一部分。今天刚开始使用XAML,我希望您有时间阅读许多其他高级和重要的图像概念