日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[转]Dynamic and static Rectangle in WPF

發布時間:2025/3/17 asp.net 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]Dynamic and static Rectangle in WPF 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此文轉載自:Raj Kumar

In geometry, a rectangle is defined as a quadrilateral where all four of its angles are right angles (90 degrees).

The <Rectangle /> element of XAML draws a rectangle. The Height and Width attributes represent the height and width of the rectangle. The Stroke and Stroke Thickness represents the color and thickness of the rectangle boundary.

In this example, I am showing you how to draw a rectangle static and dynamic. Static rectangle means the rectangle is drawn totally based on XAML code while dynamic rectangle means, I create the rectangle using code in the code behind file.

  • This code shows how to draw a?rectangle:

    <!--static rectangle -->
    <Canvas Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="50,20,0,0">
    ????? <Rectangle Width="150" Height="150" Stroke="Red" Fill="Gray" StrokeThickness="2"></Rectangle>
    </
    Canvas>
    <
    TextBlock Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center">Static Rectangle</TextBlock>

    Draw a rectangle dynamically:

    <!--dynamic rectangle -->
    <Canvas x:Name="canvas" Grid.Column="1" Grid.Row="0" Margin="50,20,0,0"></Canvas>
    <
    TextBlock Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center">Dynamic Rectangle</TextBlock>

    private
    void DrawRectangle()
    {

    ??????????? Rectangle exampleRectangle = new Rectangle();
    ??????????? exampleRectangle.Width = 150;
    ??????????? exampleRectangle.Height = 150;
    ??????????? // Create a SolidColorBrush and use it to
    ??????????? // paint the rectangle.
    ??????????? SolidColorBrush myBrush = new SolidColorBrush(Colors.Green);
    ??????????? exampleRectangle.Stroke = Brushes.Red;
    ??????????? exampleRectangle.StrokeThickness = 4;
    ??????????? exampleRectangle.Fill = myBrush;
    ??????????? canvas.Children.Insert(0, exampleRectangle);
    ?}

    Result looks like this:


    Figure 1.

    ?

  • This code shows how draw rectangle with Radius.
    ?

    <!--static rectangle with radius -->

    ??????? <Canvas Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="50,20,0,0">

    ?????? ?????<Rectangle Width="150" Height="150" RadiusX="10" RadiusY="10" Stroke="Red" Fill="Gray" StrokeThickness="2"></Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center">Static Rectangle Radius</TextBlock>

    Make dynamically:

    <!--dynamic rectangle with radius -->
    ??????? <Canvas x:Name="canvas1" Grid.Column="1" Grid.Row="1" Margin="50,20,0,0"></Canvas>
    ??????? <TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center">Dynamic Rectangle Radius</TextBlock>

    ?

    private void RadiusRectangle()

    ??????? {

    ??????????? Rectangle exampleRectangle1 = new Rectangle();

    ??????????? exampleRectangle1.Width = 150;

    ??????????? exampleRectangle1.Height = 150;

    ??????????? exampleRectangle1.RadiusX = 10;

    ??????????? exampleRectangle1.RadiusY = 10;

    ??????????? // Create a SolidColorBrush and use it to

    ??????????? // paint the rectangle.

    ??????????? SolidColorBrush myBrush = new SolidColorBrush(Colors.Green);

    ??????????? exampleRectangle1.Stroke = Brushes.Red;

    ???????? ???exampleRectangle1.StrokeThickness = 4;

    ??????????? exampleRectangle1.Fill = myBrush;

    ??????????? canvas1.Children.Insert(0, exampleRectangle1);

    ? ?

    ??????? }

    Result:



    Figure 2.

    ?

  • This code shows how to make a rectangle using Gradient colors.
    ?

    <!--static rectangle with gradient colors-->

    ??????? <Canvas Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150">

    ????????????? <Rectangle.Fill>

    ??????????????? <LinearGradientBrush>

    ????????????????? <GradientStop Color="Yellow" Offset="0.0" />

    ????????????????? <GradientStop Color="Orange" Offset="0.5" />

    ????????????????? <GradientStop Color="Red" Offset="1.0" />

    ??????????????? </LinearGradientBrush>

    ????????????? </Rectangle.Fill>

    ??????????? </Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center">Static Rectangle Gradient</TextBlock>

    Make Dynamically:
    ?

    <!--dynamic rectangle with gradient colors-->

    ??????? <Canvas x:Name="canvas2" Grid.Column="1" Grid.Row="2" Margin="50,20,0,0"></Canvas>

    ??????? <TextBlock Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center">Dynamic Rectangle Gradient</TextBlock>

    private void GradientRectangle()

    ??????? {

    ??????????? Rectangle exampleRectangle = new Rectangle();

    ??????????? exampleRectangle.Width = 150;

    ??????????? exampleRectangle.Height = 150;

    ? ?

    ??????????? // Create a RadialGradientBrush and use it to

    ??????????? // paint the rectangle.

    ??????????? RadialGradientBrush myBrush = new RadialGradientBrush();

    ??????????? myBrush.GradientOrigin = new Point(0.75, 0.25);

    ??????????? myBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0));

    ??????????? myBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5));

    ??????????? myBrush.GradientStops.Add(new GradientStop(Colors.Red, 1.0));

    ? ?

    ??????????? exampleRectangle.Fill = myBrush;

    ??????????? canvas2.Children.Insert(0, exampleRectangle);

    ??????? }



    Figure 3.

    ?

  • This code shows how to draw a rectangle paint with an image.

    <!--static paint with image-->

    ??????? <Canvas Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150">???????????????

    ??????????????? <Rectangle.Fill>

    ??????????????????? <ImageBrush ImageSource="sampleImages\san20a.jpg" ?/>

    ??????????????? </Rectangle.Fill>

    ??????????? </Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="0" Grid.Row="3" HorizontalAlignment="Center">Static Rectangle paint with image</TextBlock>

    Dynamically:

    <!--dynamic paint with image-->

    <Canvas x:Name="canvas3" Grid.Column="1" Grid.Row="3" Margin="50,20,0,0"></Canvas>

    <TextBlock Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center">Dynamic Rectangle paint with image</TextBlock>

    ? private void PaintWithImageRectangle()

    ??????? {

    ??????????? Rectangle exampleRectangle = new Rectangle();

    ??????????? exampleRectangle.Width = 150;

    ??????????? exampleRectangle.Height = 150;

    ? ?

    ??????????? // Create an ImageBrush and use it to

    ??????????? // paint the rectangle.

    ??????????? ImageBrush myBrush = new ImageBrush();

    ??????????? myBrush.ImageSource =

    ??????????????? new BitmapImage(new Uri(@"C:\Users\Raj\Documents\Visual Studio 2008\Projects\Chapter1\Chapter1\sampleImages\san20a.jpg", UriKind.Relative));

    ? ?

    ??????????? exampleRectangle.Fill = myBrush;

    ??????????? canvas3.Children.Insert(0, exampleRectangle);

    ??????? }

    Result:



    Figure 4.
    ?

  • This code shows how to draw paint a rectangle with visual effects.

    <!--static paint with visual-->

    ??????? <Canvas Grid.Column="2" Grid.Row="0" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150" Stroke="Red" StrokeThickness="4">

    ??????????????? <Rectangle.Fill>

    ??????????????????? <VisualBrush TileMode="Tile">

    ??????????????????????? <VisualBrush.Visual>

    ??????????????????????????? <StackPanel>

    ??????????????????????????????? <StackPanel.Background>

    ??????????????????????????????????? <DrawingBrush>

    ??????????????????????????????????????? <DrawingBrush.Drawing>

    ??????????????????????????????????????????? <GeometryDrawing>

    ??????????????????????????????????????????????? <GeometryDrawing.Brush>

    ??????????????????????????????????????????????????? <RadialGradientBrush>

    ??????????????????????????????????????????????????????? <GradientStop Color="MediumBlue" Offset="0.0" />

    ??????????????????????????????????????????????????????? <GradientStop Color="White" Offset="1.0" />

    ??????????????????????????????????????????????????? </RadialGradientBrush>

    ??????????????????????????????????????????????? </GeometryDrawing.Brush>

    ??????????????????????????????????????????????? <GeometryDrawing.Geometry>

    ??????????????????????????????????????????????????? <GeometryGroup>

    ??????????????????????????????????????????????????????? <RectangleGeometry Rect="0,0,50,50" />

    ???????????? ???????????????????????????????????????????<RectangleGeometry Rect="50,50,50,50" />

    ??????????????????????????????????????????????????? </GeometryGroup>

    ??????????????????????????????????????????????? </GeometryDrawing.Geometry>

    ?????????????????????????? ?????????????????</GeometryDrawing>

    ??????????????????????????????????????? </DrawingBrush.Drawing>

    ??????????????????????????????????? </DrawingBrush>

    ??????????????????????????????? </StackPanel.Background>

    ??????????????????????????????? <TextBlock FontSize="10pt" Margin="10">Raj Beniwal</TextBlock>

    ??????????????????????????? </StackPanel>

    ??????????????????????? </VisualBrush.Visual>

    ??????????????????? </VisualBrush>

    ??????????????? </Rectangle.Fill>

    ??????????? </Rectangle>

    ??????? </Canvas>

    ??? ????<TextBlock Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center">Static Rectangle paint with visual</TextBlock>

    Dynamically:
    ?

    <!--dynamic paint with image-->

    <Canvas x:Name="canvas4" Grid.Column="3" Grid.Row="0" Margin="50,20,0,0"></Canvas>

    <TextBlock Grid.Column="3" Grid.Row="0" HorizontalAlignment="Center">Dynamic Rectangle paint with visual</TextBlock>

    private void VisualRectangle()

    ??????? {

    ??????????? Rectangle exampleRectangle = new Rectangle();

    ??????????? exampleRectangle.Width = 150;

    ??????????? exampleRectangle.Height = 150;

    ??????????? exampleRectangle.StrokeThickness = 4;

    ??????????? exampleRectangle.Stroke = Brushes.Red;

    ? ?

    ??????????? // Create a VisualBrush and use it

    ??????????? // to paint the rectangle.

    ??????????? VisualBrush myBrush = new VisualBrush();

    ? ?

    ??????????? //

    ??????????? // Create the brush's contents.

    ??????????? //

    ??????????? StackPanel aPanel = new StackPanel();

    ? ?

    ??????????? // Create a DrawingBrush and use it to

    ??????????? // paint the panel.

    ??????????? DrawingBrush myDrawingBrushBrush = new DrawingBrush();

    ??????????? GeometryGroup aGeometryGroup = new GeometryGroup();

    ??????????? aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50)));

    ??????????? aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50)));

    ??????????? RadialGradientBrush checkerBrush = new RadialGradientBrush();

    ??????????? checkerBrush.GradientStops.Add(new GradientStop(Colors.Green, 0.0));

    ??????????? checkerBrush.GradientStops.Add(new GradientStop(Colors.White, 1.0));

    ??????????? GeometryDrawing checkers = new GeometryDrawing(checkerBrush, null, aGeometryGroup);

    ??????????? myDrawingBrushBrush.Drawing = checkers;

    ??????????? aPanel.Background = myDrawingBrushBrush;

    ? ?

    ??????????? // Create some text.

    ??????????? TextBlock someText = new TextBlock();

    ??????????? someText.Text = "Raj Beniwal";

    ??????????? FontSizeConverter fSizeConverter = new FontSizeConverter();

    ??????????? someText.FontSize = (double)fSizeConverter.ConvertFromString("10pt");

    ??? ????????someText.Margin = new Thickness(10);

    ? ?

    ??????????? aPanel.Children.Add(someText);

    ? ?

    ??????????? myBrush.Visual = aPanel;

    ??????????? exampleRectangle.Fill = myBrush;

    ??????????? canvas4.Children.Insert(0, exampleRectangle);

    ? ?

    ??????? }



    Figure 5.
    ?

  • This code shows how to draw and paint a rectangle with drawing brush.

    <!--static paint with drawing-->

    ??????? <Canvas Grid.Column="2" Grid.Row="1" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150">

    ??????????????? <Rectangle.Fill>

    ??????????????????? <DrawingBrush Viewport="0,0,0.25,0.25" TileMode="Tile">

    ??????????????????????? <DrawingBrush.Drawing>

    ??????????????????????????? <DrawingGroup>

    ??????????????????????????????? <GeometryDrawing Brush="White">

    ??????????????????????????????????? <GeometryDrawing.Geometry>

    ?????????????????????? ?????????????????<RectangleGeometry Rect="0,0,100,100" />

    ??????????????????????????????????? </GeometryDrawing.Geometry>

    ??????????????????????????????? </GeometryDrawing>

    ? ?

    ??????????????????????????????? <GeometryDrawing>

    ??????????????????????????????? ????<GeometryDrawing.Geometry>

    ??????????????????????????????????????? <GeometryGroup>

    ??????????????????????????????????????????? <RectangleGeometry Rect="0,0,50,50" />

    ??????????????????????????????????????????? <RectangleGeometry Rect="50,50,50,50" />

    ??????????????????????????????????????? </GeometryGroup>

    ??????????????????????????????????? </GeometryDrawing.Geometry>

    ??????????????????????????????????? <GeometryDrawing.Brush>

    ??????????????????????????????????????? <LinearGradientBrush>

    ????????????? ??????????????????????????????<GradientStop Offset="0.0" Color="Red" />

    ??????????????????????????????????????????? <GradientStop Offset="1.0" Color="Green" />

    ??????????????????????????????????????? </LinearGradientBrush>

    ???????????????????????????????? ???</GeometryDrawing.Brush>

    ??????????????????????????????? </GeometryDrawing>

    ??????????????????????????? </DrawingGroup>

    ??????????????????????? </DrawingBrush.Drawing>

    ??????????????????? </DrawingBrush>

    ??????????????? </Rectangle.Fill>

    ??????????? </Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center">Static Rectangle paint with drawing</TextBlock>

    Dynamic:
    ?

    <!--dynamic paint with drawing-->

    <Canvas x:Name="canvas5" Grid.Column="3" Grid.Row="1" Margin="50,20,0,0"></Canvas>

    <TextBlock Grid.Column="3" Grid.Row="1" HorizontalAlignment="Center">Dynamic Rectangle paint with drawing</TextBlock>

    private void PaintWithDrawing()

    ??????? {

    ??????????? Rectangle exampleRectangle = new Rectangle();

    ??????? ????exampleRectangle.Width = 150;

    ??????????? exampleRectangle.Height = 150;

    ? ?

    ??????????? // Create a DrawingBrush and use it to

    ??????????? // paint the rectangle.

    ??????????? DrawingBrush myBrush = new DrawingBrush();

    ? ?

    ??????????? GeometryDrawing backgroundSquare =

    ??????????????? new GeometryDrawing(

    ??????????????????? Brushes.White,

    ??????????????????? null,

    ??????????????????? new RectangleGeometry(new Rect(0, 0, 100, 100)));

    ? ?

    ??????????? GeometryGroup aGeometryGroup = new GeometryGroup();

    ?????????? ?aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50)));

    ??????????? aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50)));

    ? ?

    ??????????? LinearGradientBrush checkerBrush = new LinearGradientBrush();

    ??????????? checkerBrush.GradientStops.Add(new GradientStop(Colors.Red, 0.0));

    ??????????? checkerBrush.GradientStops.Add(new GradientStop(Colors.Green, 1.0));

    ? ?

    ??????????? GeometryDrawing checkers = new GeometryDrawing(checkerBrush, null, aGeometryGroup);

    ? ?

    ??????????? DrawingGroup checkersDrawingGroup = new DrawingGroup();

    ??????????? checkersDrawingGroup.Children.Add(backgroundSquare);

    ??????????? checkersDrawingGroup.Children.Add(checkers);

    ? ?

    ??????????? myBrush.Drawing = checkersDrawingGroup;

    ??????????? myBrush.Viewport = new Rect(0, 0, 0.25, 0.25);

    ??????????? myBrush.TileMode = TileMode.Tile;

    ? ?

    ??????????? exampleRectangle.Fill = myBrush;

    ??????????? canvas5.Children.Insert(0, exampleRectangle);

    ??????? }

    Result:



    Figure 6.

    ?

  • This code shows how to draw and fill a rectangle with a brush and opacity (transparency). The Opacity property defines the transparency of a control in XAML and WPF.

    <!--static rectangle with brush -->

    ??????? <Canvas Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150">

    ??????????????? <Rectangle.Fill>

    ??????????????????? <SolidColorBrush Color="Green" Opacity="0.25" />

    ??????????????? </Rectangle.Fill>

    ???? ???????</Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="2" Grid.Row="2" HorizontalAlignment="Center">Static Rectangle rectangle with brush</TextBlock>

    Dynamic:
    ?

    <!--dynamic rectangle using brush-->

    ??????? <Canvas x:Name="canvas6" Grid.Column="3" Grid.Row="2" Margin="50,20,0,0"></Canvas>

    ??????? <TextBlock Grid.Column="3" Grid.Row="2" HorizontalAlignment="Center">Dynamic Rectangle paint with drawing</TextBlock>

    private void RectangleWithBrush()

    ??????? {

    ??????????? Rectangle myRectangle = new Rectangle();

    ??????????? myRectangle.Width = 150;

    ??????????? myRectangle.Height = 150;

    ??????????? SolidColorBrush partiallyTransparentSolidColorBrush

    ??????????????? = new SolidColorBrush(Colors.Green);

    ??????????? partiallyTransparentSolidColorBrush.Opacity = 0.25;

    ??????????? myRectangle.Fill = partiallyTransparentSolidColorBrush;

    ??????????? canvas6.Children.Insert(0, myRectangle);

    ? ?

    ??????? }

    Result:



    Figure 7.

    ?

  • This demonstrate how to rotate a rectangle using transformation.?The RenderTransform property of?Rectangle is responsible for transforming a rectangle such as rotating.
    ?

    <!--static rotate rectangle -->

    ??????? <Canvas Grid.Column="2" Grid.Row="3" HorizontalAlignment="Left" Margin="50,20,0,0">

    ??????????? <Rectangle Width="150" Height="150" Stroke="#FFBF4343" Canvas.Left="10" Canvas.Top="10" StrokeThickness="4" RenderTransformOrigin="0.5,0.5">

    ??????????????? <Rectangle.RenderTransform>

    ??????????????????? <TransformGroup>

    ????????????????? ??????<ScaleTransform ScaleX="1" ScaleY="1"/>

    ??????????????????????? <SkewTransform AngleX="0" AngleY="0"/>

    ??????????????????????? <RotateTransform Angle="30.704"/>

    ??????????????????????? <TranslateTransform X="0" Y="0"/>

    ??????????????????? </TransformGroup>

    ??????????????? </Rectangle.RenderTransform>

    ??????????????? <Rectangle.Fill>

    ??????????????????? <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

    ??????????????????????? <GradientStop Color="#FF000000" Offset="0"/>

    ??????????????????????? <GradientStop Color="#FF1E1919" Offset="1"/>

    ??????????????????? </LinearGradientBrush>

    ??????????????? </Rectangle.Fill>

    ??????????? </Rectangle>

    ??????? </Canvas>

    ??????? <TextBlock Grid.Column="2" Grid.Row="3" HorizontalAlignment="Center">Static Rotate Rectangle</TextBlock>

    Result:


    Figure 8.

  • For more information see attached project. This is it.

    轉載于:https://www.cnblogs.com/peach/archive/2008/11/22/1338905.html

    總結

    以上是生活随笔為你收集整理的[转]Dynamic and static Rectangle in WPF的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。