wpf - WPF动画边距绑定
问题描述
有没有办法以动画使 UserControl 从左侧滑入的方式将厚度动画绑定到 UserControls 父容器宽度?
我知道 Width 是一个 int 并且目标属性是一个不同类型的边距,我知道你应该使用某种 ValueConverter 但我的似乎不能正常工作。
下面是我很穷,但最好的尝试。这没有用。有没有更好更简单的方法来做到这一点?最好不需要转换器和纯 xaml 解决方案。
<Window>
<Grid> <!-- Main Window Container -->
<UserControl x:Name="ParentControl" Content="{Binding Window}" />
</Grid>
</Window>
<UserControl>
<UserControl.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetName="ucDashboardView"
Storyboard.TargetProperty="Margin"
From="{Binding Width, ElementName=ParentControl,
Converter=cnv:MarginWidthConverter}"
To="0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</UserControl.Triggers>
<!-- Just so we can see something right now -->
<Grid Margin="50" Background="Gainsboro"/>
</UserControl>
然后是 C# 转换器
public class MarginWidthConverter : BaseValueConverter<MarginWidthConverter>
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return new Thickness(-(int)value, 0, (int)value, 0);
}
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
解决方案
推荐阅读
- java - 在 mac 上运行的 eclipse 上找不到 Json 文件异常。在 Windows 上运行良好
- ios - 从照片库 iOS (Swift) 中删除缓存的视频
- php - 在 POST 值不为空之前,如何防止 SQL 被执行?
- amazon-web-services - 如何在 dynamoDB 全局表中实现强删除一致性
- c# - UIAutomation 无法滚动我的 UI 元素。但为什么?
- python - 如何修复:主要功能无法访问 - Python 3.5
- python - 如何在 Aiogram 的调度程序中从 message_handler 中排除 /command?
- spring-cloud-stream - 加入包含对象的 kafka 流
- pandas - GroupBy 方法更改数据类型
- java - 使用 KeyNavigatorBehavior 时使用哪些键来移动?我该如何设置它们?