첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ VisualBrush 엘리먼트를 사용해 반사 효과를 만드는 방법을 보여준다.

TestProject.zip
0.01MB

▶ MainWindow.xaml

<Window Name="window" x:Class="TestProject.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="800"
    Height="600"
    Title="TestProject"
    Background="Black"
    FontFamily="나눔고딕코딩"
    FontSize="16">
    <StackPanel
        HorizontalAlignment="Center"
        VerticalAlignment="Center">
        <Border Name="sourceBorder"
            Width="400">
            <Border.Background>
                <LinearGradientBrush
                    StartPoint="0 0.5"
                    EndPoint="1 0.5">
                    <GradientStop Offset="0.0" Color="#ccccff" />
                    <GradientStop Offset="1.0" Color="White"   />
                </LinearGradientBrush>
            </Border.Background>
            <StackPanel
                Orientation="Horizontal"
                Margin="10">
                <TextBlock
                    Margin="10"
                    Width="200"
                    TextWrapping="Wrap">
                    Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
                    Suspendisse vel ante. Donec luctus tortor sit amet est.
                    Nullam pulvinar odio et wisi.
                    Pellentesque quis magna. Sed pellentesque.
                    Nulla euismod.
                    Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
                </TextBlock>
                <StackPanel>
                    <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
                    <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
                    <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
                </StackPanel>
            </StackPanel>
        </Border>
        <Rectangle
            HorizontalAlignment="Stretch"
            Height="1"
            Fill="Gray" />
        <Rectangle
            Width="{Binding Path=ActualWidth, ElementName=sourceBorder}"
            Height="{Binding Path=ActualHeight, ElementName=sourceBorder}">
            <Rectangle.Fill>
                <VisualBrush
                    Stretch="None"
                    Opacity="0.75"
                    Visual="{Binding ElementName=sourceBorder}">
                    <VisualBrush.RelativeTransform>
                        <TransformGroup>
                            <ScaleTransform
                                ScaleX="1"
                                ScaleY="-1" />
                            <TranslateTransform  Y="1" />
                        </TransformGroup>
                    </VisualBrush.RelativeTransform>
                </VisualBrush>
            </Rectangle.Fill>
            <Rectangle.OpacityMask>
                <LinearGradientBrush
                    StartPoint="0.5 0"
                    EndPoint="0.5 1">
                    <GradientStop Offset="0.0"  Color="#FF000000" />
                    <GradientStop Offset="0.5"  Color="#33000000" />
                    <GradientStop Offset="0.75" Color="#00000000" />
                </LinearGradientBrush>
            </Rectangle.OpacityMask>
            <Rectangle.BitmapEffect>
                <BlurBitmapEffect Radius="1.5" />
            </Rectangle.BitmapEffect>
        </Rectangle>
    </StackPanel>
</Window>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요