【问题标题】:Creating a silverlight border in codebehind?在代码隐藏中创建银光边框?
【发布时间】:2011-09-12 04:04:33
【问题描述】:

我在 XAML 中有以下边框:

<Border
    Grid.Column="0"
    Grid.ColumnSpan="3"
    Grid.RowSpan="3"
    CornerRadius="1,1,1,1"
    Background="Red"
    BorderBrush="#333333"
    BorderThickness="1,1,1,1"
    x:Name="border"
    RenderTransformOrigin="0.5,0.5">
    <Border.RenderTransform>
        <TransformGroup>
            <ScaleTransform />
            <SkewTransform />
            <RotateTransform />
            <TranslateTransform />
        </TransformGroup>
    </Border.RenderTransform>
    <ContentPresenter
        x:Name="contentPresenter"
        Margin="10,0,10,0"
        ContentTemplate="{TemplateBinding ContentTemplate}"
        VerticalAlignment="Center"
        HorizontalAlignment="Center" />
</Border>

我正在尝试在代码后面 (C#) 中创建类似的边框。我无法超越Border b = new Border(),我不确定我应该如何将边框放在特定网格列内或如何跨越它。

有什么想法吗?

【问题讨论】:

    标签: c# .net silverlight grid code-behind


    【解决方案1】:

    类似这样的:

    var border = new Border();
    
    Grid.SetColumn(border, 0);
    Grid.SetColumnSpan(border, 3);
    Grid.SetRowSpan(border, 3);
    
    border.CornerRadius = new CornerRadius(1);
    border.Background = new SolidColorBrush(Colors.Red);
    border.BorderBrush = new SolidColorBrush(Color.FromArgb(0xff, 0x33, 0x33, 0x33));
    border.BorderThickness = new Thickness(1);
    border.RenderTransformOrigin = new Point(0.5, 0.5);
    
    var transformGroup = new TransformGroup();
    transformGroup.Children.Add(new ScaleTransform());
    transformGroup.Children.Add(new SkewTransform());
    transformGroup.Children.Add(new RotateTransform());
    transformGroup.Children.Add(new TranslateTransform());
    border.RenderTransform = transformGroup;
    

    如果您希望我设置其余属性,请告诉我。

    【讨论】:

      【解决方案2】:

      如果对你有帮助:

                  Border b = new Border();
                  Grid.SetColumn(b, 0);
                  Grid.SetColumnSpan(b, 3);
                  Grid.SetRowSpan(b, 3);
      
                  b.CornerRadius = new CornerRadius(1);
                  b.Background = new SolidColorBrush(Colors.Red);
      
                  // Then add your border to the grid
                  g.Children.Add(b);
      

      但是对于 ContentPresneter,我不知道该怎么做

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多