WPF: XAML、C# で Border の角丸(Corner Radius)
初の C# 記事です。
WPF で角丸を実現したいときありますよね。
Border
のときは CornerRadius
、Rectangle
のときは RadiusX
, RadiusY
をプロパティーで指定すれば角丸になります。
以下、サンプルコードです。
※ using
使えばコードは短くなりますが、敢えて全部書いちゃいます
Border
のサンプルコード
// XAML
<Border
BorderBrush="#FF000000"
BorderThickness="1"
Background="#FFFFFFFF"
Padding="5"
CornerRadius="5" />
// C#
myBorder = new System.Windows.Controls.Border();
myBorder.BorderBrush = (Brush)new BrushConverter().ConvertFromString("#FF000000");
myBorder.BorderThickness = new System.Windows.Thickness(1);
myBorder.Background = (Brush)new BrushConverter().ConvertFromString("#FFFFFFFF");
myBorder.Padding = new System.Windows.Thickness(5);
myBorder.CornerRadius = new CornerRadius(5);
Rectangle
のサンプルコード
// XAML
<Rectangle
Stroke="#FF000000"
StrokeThickness="1"
Fill="#FFFFFFFF"
RadiusX="5"
RadiusY="5" />
// C#
myRect = new System.Windows.Shapes.Rectangle();
myRect.Stroke = (Brush)new BrushConverter().ConvertFromString("#FF000000");
myRect.StrokeThickness = new System.Windows.Thickness(1);
myRect.Fill = (Brush)new BrushConverter().ConvertFromString("#FFFFFFFF");
anyElement.Children.Add(myRect);
参考 URL
- Border.CornerRadius Property (System.Windows.Controls)
- Rectangle Class (System.Windows.Shapes)
- How to convert color code into media.brush? - Stack Overflow
- Convert string to Brushes/Brush color name in C# - Stack Overflow