WPF 2D圖形 Shape入門(一)--Shape


本文是篇WPF Shape的入門文章

Shape

首先看看shape的繼承鏈關系:

一個Shape具有哪些重要屬性:

屬性 說明
DefiningGeometry 默認的幾何形狀
RenderedGeometry 最終渲染后呈現的幾何形狀
Stroke 繪制的形狀輪廓加上畫刷(顏色)
StrokeThickness 繪制邊框畫刷的粗細
Fill 給繪制的形狀內部填充畫刷

Rectangle

我們先來剖析一個簡單的預設的Shape對象Rectangle,實際上一個Rectangle能夠正式渲染顯示到界面當中,必須含有三個要素:

  • Geometry(幾何):決定着繪制的形狀
  • Stroke(邊框畫刷)或者Fill(填充畫刷):給繪制的形狀輪廓加上畫刷(顏色)/給繪制的形狀內部填充畫刷(顏色)
  • Height/Width:決定着幾何圖形的大小

因此代碼如下:

MainWindow.xaml:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
       <Rectangle x:Name="Rectangle" Height="150" Width="150" Stroke="Black" />
    </Grid>

MainWindow.xaml.cs:

Debug.WriteLine(Rectangle.RenderedGeometry.ToString());

輸出:

System.Windows.Media.RectangleGeometry

因此實際上決定一個真正的Rectangle形狀的是RectangleGeometry,關於Geometry相關的知識可能會在以后Shape系列文章講到

Path

還有一種方式同樣的能夠獲得矩形形狀,那就是通過Path:

MainWindow.xaml:

 <Path x:Name="Path" Grid.Column="1" Stroke="Black" />

MainWindow.xaml.cs:

 Path.Data = new RectangleGeometry(new Rect(100, 128, 150, 150));
 Debug.WriteLine(Path.RenderedGeometry.ToString());

輸出:

System.Windows.Media.RectangleGeometry

界面效果:

因此,Rectangle實際上底層是預設了RectangleGeometry,而通過Path我們可以自定義所需的Geometry

源碼

https://github.com/ZhengDaoWang/BlogCodeSample/tree/main/ShapeSample


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM