Связывание полей анимации WPF - PullRequest
0 голосов
/ 24 мая 2018

Есть ли способ привязать анимацию 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...