Как увеличить listbox с 0 до размера сетки в XAML

#wpf #xaml #animation

#wpf #xaml #Анимация

Вопрос:

Я хочу, чтобы значение To="200.0" автоматически равнялось размеру сетки

 <ListBox HorizontalAlignment="Stretch" Grid.Column="1"
            Margin="12,90,12,12" 
            Name="listBox1" 
            Opacity="0.6"
            VerticalAlignment="Stretch" BorderThickness="0.5" BorderBrush="White">
            <ListBox.Triggers>
                <EventTrigger RoutedEvent="Window.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="listBox1"
                                             Storyboard.TargetProperty="Width"
                                             From=" 0.0" To="200.0" />
                            <DoubleAnimation Storyboard.TargetName="listBox1"
                                             Storyboard.TargetProperty="Height"
                                             From="0.0" To="200.0" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </ListBox.Triggers>
        </ListBox>
  

Ответ №1:

попробуйте что-то вроде этого:

 <Grid Name="test">
    <ListBox HorizontalAlignment="Stretch" Name="listBox1" 
        VerticalAlignment="Stretch" BorderThickness="0.5" BorderBrush="Black">
        <ListBox.Triggers>
            <EventTrigger RoutedEvent="Window.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="listBox1"
                                            Storyboard.TargetProperty="Width"
                                            From="0.0" To="{Binding ElementName=test,Path=ActualWidth}" />
                        <DoubleAnimation Storyboard.TargetName="listBox1"
                                            Storyboard.TargetProperty="Height"
                                            From="0.0" To="{Binding ElementName=test,Path=ActualHeight}" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </ListBox.Triggers>
    </ListBox>
</Grid>
  

Я использовал привязку ElementName вместо привязки RelativeSource, потому что я не могу заставить RelativeSource работать. Я думаю, потому, что storyboard не является частью того же дерева визуальных элементов / элементов управления, что и listbox.