「SkiaSharpで四角形を描く」の版間の差分
ナビゲーションに移動
検索に移動
5行目: | 5行目: | ||
何も考えずにSKCanvasのDrawRectを呼ぶと内側が塗りつぶされる。 | 何も考えずにSKCanvasのDrawRectを呼ぶと内側が塗りつぶされる。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | var rect = SKRect | + | var rect = new SKRect(10, 10, 90, 90); |
var paint = new SKPaint { | var paint = new SKPaint { | ||
17行目: | 17行目: | ||
塗りつぶしたくない場合はSKPaintのStyleに「SKPaintStyle.Stroke」を明示的に設定する。 | 塗りつぶしたくない場合はSKPaintのStyleに「SKPaintStyle.Stroke」を明示的に設定する。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | var rect = SKRect | + | var rect = new SKRect(10, 10, 90, 90); |
var paint = new SKPaint { | var paint = new SKPaint { | ||
25行目: | 25行目: | ||
canvas.DrawRect(rect, paint); | canvas.DrawRect(rect, paint); | ||
+ | </source> | ||
+ | |||
+ | == 角丸四角形 == | ||
+ | 角丸四角形を描画する場合はDrawRectではなくDrawRoundRectを使用する。 | ||
+ | <source lang="csharp"> | ||
+ | var rect = new SKRoundRect( | ||
+ | new SKRect(10, 10, 90, 90), | ||
+ | xRadius:10, | ||
+ | yRadius:10); | ||
+ | |||
+ | var paint = new SKPaint { | ||
+ | Style = SKPaintStyle.Stroke, | ||
+ | StrokeWidth = 2, | ||
+ | }; | ||
+ | |||
+ | canvas.DrawRoundRect(rect, paint); | ||
</source> | </source> | ||
== 関連項目 == | == 関連項目 == | ||
* [[SkiaSharpで日本語文字列を描画する]] | * [[SkiaSharpで日本語文字列を描画する]] | ||
+ | * [[SkiaSharpでアンチエイリアスを有効にする]] | ||
* [[SkiaSharpでSKImageをファイルに保存する]] | * [[SkiaSharpでSKImageをファイルに保存する]] | ||
[[category: SkiaSharp]] | [[category: SkiaSharp]] |
2019年1月11日 (金) 02:37時点における最新版
SkiaSharpで四角形を描くのにはSKCanvasのDrawRectメソッドを利用する。 この手のライブラリでは「Draw〇〇」や「Fill〇〇」などがあるのが定番だが、SkiaSharpでは「Draw〇〇」のみで引数として渡すSKPaintで制御する方式となっている。
塗り潰しあり[編集 | ソースを編集]
何も考えずにSKCanvasのDrawRectを呼ぶと内側が塗りつぶされる。
var rect = new SKRect(10, 10, 90, 90);
var paint = new SKPaint {
SKColors.Blue,
};
canvas.DrawRect(rect, paint);
塗り潰しなし[編集 | ソースを編集]
塗りつぶしたくない場合はSKPaintのStyleに「SKPaintStyle.Stroke」を明示的に設定する。
var rect = new SKRect(10, 10, 90, 90);
var paint = new SKPaint {
Style = SKPaintStyle.Stroke,
StrokeWidth = 3,
};
canvas.DrawRect(rect, paint);
角丸四角形[編集 | ソースを編集]
角丸四角形を描画する場合はDrawRectではなくDrawRoundRectを使用する。
var rect = new SKRoundRect(
new SKRect(10, 10, 90, 90),
xRadius:10,
yRadius:10);
var paint = new SKPaint {
Style = SKPaintStyle.Stroke,
StrokeWidth = 2,
};
canvas.DrawRoundRect(rect, paint);