Создание границы silverlight в codebehind?

#c# #.net #silverlight #grid #code-behind

#c# #.net #silverlight #сетка #код за

Вопрос:

У меня есть следующая граница в 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>
  

и я пытаюсь создать аналогичную границу в code behind (C #). Я не могу выйти за рамки Border b = new Border() , я не уверен, как я должен поместить границу внутри определенного столбца сетки или как ее охватить.

Есть идеи?

Ответ №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 я не знаю, как это сделать