Как динамически добавить кнопки и проигрыватель Silverlight в сетку? - PullRequest
0 голосов
/ 05 июля 2011

Я в основном пытаюсь создать следующий набор кода динамически / программно, но я не уверен, как это сделать.

    <Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <smf:SMFPlayer x:Name="player" Grid.Row="0" AutoPlay="False">
        <smf:SMFPlayer.Playlist>
            <media:PlaylistItem 
                DeliveryMethod="AdaptiveStreaming" 
                MediaSource="http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Manifest"/>
            <media:PlaylistItem 
                DeliveryMethod="AdaptiveStreaming" 
                SelectedCaptionStreamName="textstream_eng"
                MediaSource="http://streams.smooth.vertigo.com/elephantsdream/Elephants_Dream_1024-h264-st-aac.ism/manifest"/>
        </smf:SMFPlayer.Playlist>
    </smf:SMFPlayer>

    <StackPanel Grid.Row="1" Orientation="Horizontal" Background="Transparent">
        <Button x:Name="test1" Height="30" Width="70" Content="Test 1"/>
        <Button x:Name="test2" Height="30" Width="70" Content="Test 2"/>
    </StackPanel>
</Grid>

Вот как это выглядит статически:

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Прежде всего, вы должны дать имя вашей StackPanel, как это;

<StackPanel x:Name="spBottom" Grid.Row="1" Orientation="Horizontal" Background="Transparent">
        <Button x:Name="test1" Height="30" Width="70" Content="Test 1"/>
        <Button x:Name="test2" Height="30" Width="70" Content="Test 2"/>
</StackPanel>

И затем, вы должны добавить следующие строки в коде позади;

For iLoop As Integer = 0 to 4
     Dim btn As New Button With {.Content = "Button" & iLoop}
     spBottom.Children.Add(btn)
Next iLoop

Надеюсь, это вам поможет!

0 голосов
/ 07 июля 2011

Элементы управления без префикса xmlns (пространства имен XML) могут быть созданы в вашем коде без добавления каких-либо использований. Например, в C # вы можете воссоздать StackPanel из вашего XAML, используя следующий код:

StackPanel panel = new StackPanel() { Orientation = Orientation.Horizontal, Background = null };
panel.SetValue(Grid.RowProperty, 2);
LayoutRoot.Children.Add(panel);

Элементы с префиксом xmlns, все с двоеточием, например <smf:, требуют знания пространства имен в коде позади. Соответствующие пространства имен определены в первом элементе и выглядят как xmlns:smf="PathToTheNamespace". Это пространство имен часто упоминается в файле кода в C # путем добавления оператора using PathToTheNamespace вверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...