WPF 或得PNG圖片的外形Path的Data


    最近看一個帖子,做不規則按鈕,寫的非常好。超鏈接:http://blog.csdn.net/cmis7645/article/details/7592372#comments

效果圖:

代碼:

View Code
<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Grid>
                            <Path x:Name="m_Path" 
                                  Data="F1M9,0C11.666,0.333 14.334,0.667 17,1 22.845,5.421 25.898,
                                  21.658 28,29 27.333,29.333 26.667,29.667 26,30 19.868,25.697 5.596,
                                  23.229 3,19 0.692,16.443 0.29,14.946 0,10 2.591,4.864 4.881,3.405 9,0z"
                                   Stretch="Fill" RenderTransformOrigin="0.5,0.5">
                                <Path.RenderTransform>
                                    <TransformGroup>
                                        <ScaleTransform/>
                                        <SkewTransform/>
                                        <RotateTransform/>
                                        <TranslateTransform/>
                                    </TransformGroup>
                                </Path.RenderTransform>
                                <Path.Effect>
                                    <DropShadowEffect ShadowDepth="0" BlurRadius="15" Color="#FF646464"/>
                                </Path.Effect>
                                <Path.Fill>
                                    <ImageBrush ImageSource="search1_Images\Image.png"/>
                                </Path.Fill>
                            </Path>
                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content=""/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsFocused" Value="True"/>
                            <Trigger Property="IsDefaulted" Value="True"/>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="RenderTransform" TargetName="m_Path">
                                    <Setter.Value>
                                        <TransformGroup>
                                            <ScaleTransform ScaleX="1.1" ScaleY="1.1"/>
                                            <SkewTransform/>
                                            <RotateTransform/>
                                            <TranslateTransform/>
                                        </TransformGroup>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Effect" TargetName="m_Path">
                                    <Setter.Value>
                                        <DropShadowEffect BlurRadius="15" Color="Red" ShadowDepth="0"/>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="False"/>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <Button Content="Button"  Style="{DynamicResource ButtonStyle1}" Height="23" Width="23" Margin="23,24,223,205" />
    </Grid>
</Window>

 

代碼不是很難理解,關鍵是Path的Data比較難或得。根據作者提示,用PS和Blend能夠比較輕松的或得這些數據。詳細過程如下:

1、打開一張PNG圖片,並 按住Ctrl,然后點擊右下方的圖層,選中選區

2、選擇路徑,然后選擇 從選區生成路徑,

3、選擇圖層菜單,添加圖層矢量蒙版,當前路徑,

4、保存為PSD格式的就可以了。

5、用Blend導入PSD文件,圖片的Clip就是Data數據。

 


免責聲明!

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



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