1

コンボボックスにリストされているアニメーションの名前を選択して、Visual Basic 2010 WPF Mainwindow の別のパス アニメーションにアップロードしようとしています。したがって、WPF には、この時点で 2 つの名前が入ったコンボボックスを含むメイン ウィンドウがあり、それぞれ別の PathAnimation を持つ Window1 と Window2 もあります。プログラムの実行中にメイン ウィンドウにアニメーション 1 またはアニメーション 2 をロードする方法がわかりません。私は少し迷っています

4

1 に答える 1

0

これは、私がまとめた簡単な例です。ViewBox をコンテナとして使用しています。これがうまくいくかどうかを確認してください

MainWindow.xmal

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="697" Width="697" xmlns:my="clr-namespace:WpfApplication1">
    <Grid>
        <Viewbox Name="TrackContainer"  VerticalAlignment="Top"  HorizontalAlignment="Stretch"></Viewbox>
        <Button Content="Button" Height="23" HorizontalAlignment="Center"  Margin="360,600,240,0" Name="Button1" VerticalAlignment="Top" Width="75" />
        <ComboBox Height="23" Name="ComboBox1" Width="120" SelectionChanged="ComboBox1_SelectionChanged" Margin="41,600,514,35">
            <ComboBoxItem Content="Daytona" />
            <ComboBoxItem Content="SecondTrack" />
            <ComboBoxItem Content="None" />
        </ComboBox>
    </Grid>
</Window>

MainWindow.xaml.vb

Class MainWindow 
    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click

        Select Case CType(ComboBox1.SelectedValue, ComboBoxItem).Content.ToString
            Case "Daytona"
                CType(TrackContainer.Child, UserControl1).runPathAnimation()
            Case "SecondTrack"
                CType(TrackContainer.Child, UserControl2).runPathAnimation()

        End Select

    End Sub

    Private Sub ComboBox1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs)
        Dim cmbox As ComboBox = CType(sender, ComboBox)
        Select Case CType(cmbox.SelectedValue, ComboBoxItem).Content.ToString
            Case "Daytona"
                TrackContainer.Child = New UserControl1()
            Case "SecondTrack"
                TrackContainer.Child = New UserControl2()
            Case "None"
                TrackContainer.Child = Nothing
        End Select
    End Sub
End Class
于 2012-12-18T02:44:39.647 に答える