Member 12658724 Ответов: 1

Добавьте кнопку в нужную панель стека во время выполнения.


Изначально у меня есть код xaml.
<Window x:Class="Test.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        mc:Ignorable="d"

        Height="802" Width="883">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="702"></ColumnDefinition>
            <ColumnDefinition Width="150"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Viewbox Grid.Column="0">
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Horizontal">
                    <Label FontSize="48" Margin="57,0,20,0" >A</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >B</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >C</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >D</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >E</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >F</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >G</Label>
                    <Label FontSize="48" Margin="18,0,20,0" >H</Label>
                </StackPanel>
                <StackPanel Orientation="Horizontal">
                    <Label FontSize="48" Margin="0,0,7,0">8</Label>
                    <Border Style="{DynamicResource ChessL}">
                        <Button x:Name="A8" Height="Auto" Background="{x:Null}" FontSize="40" Foreground="Black"  KeyDown="OnKeyDown" Tag="{Binding A8Color,Mode=TwoWay}"></Button>
                    </Border>
                    <Border Style="{DynamicResource Chess}">
                        <Button x:Name="B8" Height="Auto" Background="{x:Null}" FontSize="40" Foreground="Black"  KeyDown="OnKeyDown" Tag="{Binding B8Color,Mode=TwoWay}">♘</Button>
                    </Border>

Это всего лишь одна кнопка, у меня есть много подобных кнопок, которые нужно добавить. Теперь я хочу добавить кнопки программно.

Самое сложное - это то, как работать с Viewbox, StackPanel, Label, border и style в коде.

Что я уже пробовал:

Я знаю, чтобы добавить простую кнопку по коду:
Button btn = new Button();

Но как добавить Viewbox, границы и стиль

[no name]

"как добавить Viewbox, границы и стиль", таким же образом.

Richard MacCutchan

Все свойства, заданные в XAML, также могут быть динамически заданы в коде C#. Проверьте документацию MSDN для элемента управления, который вы хотите создать.