如何为XAML网格代码创建C#代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为XAML网格代码创建C#代码?相关的知识,希望对你有一定的参考价值。

您好我如何为此xaml代码创建c#代码?

 <Grid Width="300" Height="330">
        <Grid.Effect>
            <DropShadowEffect
                BlurRadius="15"
                Direction="-90"
                Opacity=".2"
                RenderingBias="Quality"
                ShadowDepth="1" />
        </Grid.Effect>
        <Grid.OpacityMask>
            <VisualBrush Visual="{Binding ElementName=Border2}" />
        </Grid.OpacityMask>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height=".50*" />
            <RowDefinition Height=".5*" />
        </Grid.RowDefinitions>
        <Border
            x:Name="Border2"
            Grid.Row="0"
            Grid.RowSpan="4"
            Background="White"
            CornerRadius="5" />
        <Border
            Grid.Row="0"
            Grid.RowSpan="3"
            Background="{Binding BorderColor}" />
       <StackPanel
            Grid.Row="3"
            Margin="20,0,20,0"
            VerticalAlignment="Center">

            <StackPanel Orientation="Horizontal">

            </StackPanel>
        </StackPanel>
    </Grid>

我需要创建许多控件,所以我必须从c#代码创建ui。请告诉我怎么做到这一点?我的问题是我无法在c#中创建Grid.Effect

答案

您可以通过以下方式在C#代码中动态创建Grid

Grid grid = new Grid()
{
    Width = 300,
    Height = 300
};
grid.Effect = new DropShadowEffect()
{
    BlurRadius = 15,
    Direction = -90,
    Opacity = .2,
    RenderingBias = RenderingBias.Quality,
    ShadowDepth = 1
};
grid.RowDefinitions.Add(new RowDefinition());
grid.RowDefinitions.Add(new RowDefinition());
// ... add more rows
// Create children:
var border = new Border()
{
    Background = new SolidColorBrush(Colors.White),
    CornerRadius = new CornerRadius(5)
};
Grid.SetRow(border, 0);
Grid.SetRowSpan(border, 4);
grid.Children.Add(border);
// ... add more children

我开始在这里转换部分XAML代码以显示原理。有关更多示例,您还可以参考this article

以上是关于如何为XAML网格代码创建C#代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何为自定义 CPU 创建 C 编译器?

如何在我的XAML代码中将C#中的标签添加到网格中?

如何为在 C 中使用 C++ 代码创建包装器?

如何为邻居访问优化 OpenCL 代码?

我如何为Tic Tac Toe游戏创建HashMap

如何为 Handsontable 创建动态列?