Есть ли способ привязать анимацию Thickness к ширине родительских контейнеров UserControls таким образом, чтобы анимация заставляла скользить UserControl слева?
Я знаю, что Width - это int, а свойство target -поля, которые не относятся к тому же типу, и я знаю, что вы должны использовать какой-то 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();
}
}