从Windows 10 Core上的按钮 - XAML中删除焦点

时间:2015-11-11 09:33:16

标签: c# xaml windows-10-iot-core

我有一个带背景图片和白色文字的按钮。 当我点击它或将鼠标放在上方(焦点)时显示黑色边框,文字保持黑色。 如何在忽略鼠标时忽略点击视觉效果?

已经添加了这个但没有效果。

<Style x:Key="ButtonActionStyle" TargetType="Button">
    ...
    <Setter Property="UseLayoutRounding" Value="False"/>
    <Setter Property="UseSystemFocusVisuals" Value="False"/>
</Style>

谢谢

此代码执行我需要的操作,但没有单击视觉效果:x

<Style x:Key="ButtonActionStyle" TargetType="Button">
    ...
    <Setter Property="UseLayoutRounding" Value="False"/>
    <Setter Property="UseSystemFocusVisuals" Value="False"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="Pressed">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Grid.Row)" Storyboard.TargetName="grid">
                                        <DiscreteObjectKeyFrame KeyTime="1">
                                            <DiscreteObjectKeyFrame.Value>
                                                <x:Int32>1</x:Int32>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="PointerOver"/>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid>
                        <Grid x:Name="grid" Margin="0" Grid.Row="0" Grid.RowSpan="1">
                            <Border
                                BorderBrush="{TemplateBinding Background}"
                                BorderThickness="0"
                                CornerRadius="0"
                                Background="{TemplateBinding Background}"/>
                            <ContentPresenter>
                                <TextBlock
                                   FontFamily="{TemplateBinding FontFamily}"
                                    SelectionHighlightColor="{TemplateBinding Foreground}"
                                    FontSize="{TemplateBinding FontSize}"
                                    Foreground="{TemplateBinding Foreground}"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    Height="Auto"
                                    Width="Auto"
                                    Text="{Binding Content, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
                            </ContentPresenter>
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

1 个答案:

答案 0 :(得分:0)

基于this教程,已完成。

<Style x:Key="ButtonActionStyle" TargetType="Button">
    ...
    <Setter Property="UseLayoutRounding" Value="False"/>
    <Setter Property="UseSystemFocusVisuals" Value="False"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="PointerOver"/>
                            <VisualState x:Name="Pressed">
                                <VisualState.Setters>
                                    <Setter Target="grid.(Grid.Row)" Value="0"/>
                                    <Setter Target="grid.(Canvas.ZIndex)" Value="0"/>
                                    <Setter Target="grid.(UIElement.RenderTransformOrigin)">
                                        <Setter.Value>
                                            <Foundation:Point>0.5,0.5</Foundation:Point>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Target="grid.(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Value="1"/>
                                    <Setter Target="grid.(UIElement.Projection).(PlaneProjection.LocalOffsetX)" Value="5"/>
                                    <Setter Target="grid.(UIElement.Projection).(PlaneProjection.LocalOffsetY)" Value="5"/>
                                    <Setter Target="grid.(UIElement.Projection).(PlaneProjection.LocalOffsetZ)" Value="0"/>
                                </VisualState.Setters>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid>
                        <Grid x:Name="grid" Margin="0" Grid.Row="0" Grid.RowSpan="1">
                            <Grid.Projection>
                                <PlaneProjection/>
                            </Grid.Projection>
                            <Grid.RenderTransform>
                                <CompositeTransform/>
                            </Grid.RenderTransform>
                            <Border
                                BorderBrush="{TemplateBinding Background}"
                                BorderThickness="0"
                                CornerRadius="0"
                                Background="{TemplateBinding Background}"/>
                            <ContentPresenter>
                                <TextBlock
                                    FontFamily="{TemplateBinding FontFamily}"
                                    SelectionHighlightColor="{TemplateBinding Foreground}"
                                    FontSize="{TemplateBinding FontSize}"
                                    Foreground="{TemplateBinding Foreground}"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    Height="Auto"
                                    Width="Auto"
                                    Text="{Binding Content, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
                            </ContentPresenter>
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>