代码之家  ›  专栏  ›  技术社区  ›  ali

使用代码隐藏在wpf中创建圆角形状

  •  -1
  • ali  · 技术社区  · 7 年前

    我需要一个圆角形状,如下图所示。请注意,调整图像大小时,不得调整圆角的大小,只能调整直线段的大小。 img1

    img2 任何一个可以提供相关代码来实现这一点(特别是在网格单元中创建圆形部分)或提供其他解决方案(如果有的话)。 请注意,我在代码中创建了网格,问题是如何在其中一个网格单元中创建四分之一圆形部分(例如第0行第0列单元格中的圆形部分!)?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ben    7 年前

    下面是一个简单的示例,介绍如何创建 Grid

    XAML:

    <Grid x:Name="root"></Grid>
    

    代码隐藏:

    Grid g = new Grid();
    ColumnDefinition cd1 = new ColumnDefinition();
    ColumnDefinition cd2 = new ColumnDefinition();
    ColumnDefinition cd3 = new ColumnDefinition();
    cd1.Width = new GridLength(15, GridUnitType.Pixel);
    cd2.Width = new GridLength(200, GridUnitType.Pixel);
    cd3.Width = new GridLength(15, GridUnitType.Pixel);
    g.ColumnDefinitions.Add(cd1);
    g.ColumnDefinitions.Add(cd2);
    g.ColumnDefinitions.Add(cd3);
    
    RowDefinition rd1 = new RowDefinition();
    RowDefinition rd2 = new RowDefinition();
    RowDefinition rd3 = new RowDefinition();
    rd1.Height = new GridLength(15, GridUnitType.Pixel);
    rd2.Height = new GridLength(100, GridUnitType.Pixel);
    rd3.Height = new GridLength(15, GridUnitType.Pixel);
    g.RowDefinitions.Add(rd1);
    g.RowDefinitions.Add(rd2);
    g.RowDefinitions.Add(rd3);
    
    Border border = new Border();
    border.BorderThickness = new Thickness(2, 2, 2, 2);
    border.BorderBrush = Brushes.Red;
    border.CornerRadius = new CornerRadius(15, 15, 15, 15);
    Grid.SetColumn(border, 0);
    Grid.SetRow(border, 0);
    Grid.SetColumnSpan(border, 3);
    Grid.SetRowSpan(border, 3);
    
    Grid contentGrid = new Grid();
    contentGrid.Background = Brushes.Yellow;
    Grid.SetColumn(contentGrid, 1);
    Grid.SetRow(contentGrid, 1);
    
    g.Children.Add(border);
    g.Children.Add(contentGrid);
    root.Children.Add(g);