XAML中Button重繪為圓形的方法技巧

字號:


    在用XAML布局的時(shí)候,有時(shí)候?yàn)榱耸菇缑鍹etro化,有些Button要使用圓形代替默認(rèn)的長方形。以下的Button樣式可以解決這個(gè)問題,可以根據(jù)自己的需要再加以修改。當(dāng)然如果你熟悉Bland的話可以直接使用它來繪制你需要的樣式,但是貼代碼是否更快一點(diǎn)呢?
    代碼如下:
    <Style x:Key="btnNext" TargetType="Button">
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="Button">
    <Grid>
    <VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="CommonStates">
    <VisualState x:Name="Pressed">
    <Storyboard>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="rectangle">
    <DiscreteObjectKeyFrame KeyTime="0">
    <DiscreteObjectKeyFrame.Value>
    <Thickness>-3</Thickness>
    </DiscreteObjectKeyFrame.Value>
    </DiscreteObjectKeyFrame>
    </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    </VisualState>
    <VisualState x:Name="Normal"/>
    <VisualState x:Name="Disabled"/>
    <VisualState x:Name="MouseOver"/>
    </VisualStateGroup>
    <VisualStateGroup x:Name="FocusStates">
    <VisualState x:Name="Focused"/>
    </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Rectangle x:Name="rectangle" RadiusY="25" RadiusX="25" Stroke="Blue" StrokeThickness="4">
    </Rectangle>
    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
    </Grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    <Setter Property="Margin" Value="5"/>
    <Setter Property="Width" Value="50"/>
    <Setter Property="Height" Value="50"/>
    <Setter Property="FontSize" Value="120"/>
    <Setter Property="Foreground" Value="White"/>
    </Style>