HTML/CSS โ WPF XAML ๋ณํ ๊ฐ์ด๋
CSS โ WPF ํต์ฌ ๋งคํ ํ
์ด๋ธ
| CSS |
WPF ๊ตฌํ ๋ฐฉ๋ฒ |
์ฐธ์กฐ |
overflow: hidden + border-radius |
Border.Clip + RectangleGeometry (RadiusX/Y + MultiBinding) |
clipping.md |
position: absolute (ํ์ ์์) |
Canvas + Canvas.Left/Top |
layout.md |
animation-duration: 3s |
Duration="0:0:3" ์ธ๋ผ์ธ |
animation.md |
height: 130% (ํ์ ์์) |
Converter๋ก ๋์ ๊ณ์ฐ (๋ฐฐ์จ 2.0) |
transform.md |
::before, ::after |
Canvas ๋ด ์์, ์ ์ธ ์์๋ก z-order |
layout.md |
z-index |
์ ์ธ ์์ ๋๋ Panel.ZIndex |
layout.md |
| ์ค์ ์ ๋ ฌ ์ฝํ
์ธ |
Canvas ๋ฐ Grid์์ Alignment ์ ์ฉ |
layout.md |
spacing |
Maring ์์ฑ์ผ๋ก ๋์ฒด |
- |
ํต์ฌ ๊ท์น ์์ฝ
1. Duration์ ํญ์ ์ธ๋ผ์ธ
<!-- โ
-->
<DoubleAnimation Duration="0:0:3" />
<!-- โ StaticResource ๋ฐ์ธ๋ฉ ๋ถ๊ฐ -->
2. ๋ฅ๊ทผ ๋ชจ์๋ฆฌ ํด๋ฆฌํ์ Border.Clip + RectangleGeometry
<Border CornerRadius="20">
<Border.Clip>
<RectangleGeometry RadiusX="20" RadiusY="20">
<RectangleGeometry.Rect>
<MultiBinding Converter="{x:Static local:SizeToRectConverter.Instance}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType=Border}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource AncestorType=Border}" />
</MultiBinding>
</RectangleGeometry.Rect>
</RectangleGeometry>
</Border.Clip>
</Border>
3. ํ์ ์์๋ Canvas ๋ด ๋ฐฐ์น
<Canvas>
<Rectangle Canvas.Left="45" Canvas.Top="{Binding ...}" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<RotateTransform Angle="0" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
4. ContentPresenter๋ Canvas ๋ฐ Grid์ ๋ฐฐ์น
<Grid>
<Canvas><!-- ํ์ ์์๋ค --></Canvas>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
์ฐธ์กฐ ๋ฌธ์