предотвратить продвижение значка, когда я применяю стиль к кнопке в универсальном приложении

У меня возникла проблема с настройкой стиля значка изображения моего меню SplitView, такого как меню приложения Groove, это мой код:

<Style  x:Key="ButtontopStyleGroove"
        TargetType="Button">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid x:Name="RootGrid" Background="{TemplateBinding Background}">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                   Storyboard.TargetProperty="BorderBrush">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="transparent" />
                                        </ObjectAnimationUsingKeyFrames>
                                        <PointerUpThemeAnimation Storyboard.TargetName="RootGrid" />
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <ContentPresenter x:Name="ContentPresenter"
                          BorderBrush="#393185"
                          Content="{TemplateBinding Content}"
                          />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

это результат, который я получаю:

введите здесь описание изображения

проблема в том, что когда я нажимаю кнопку, чтобы применить стиль, который я определил, значок идет вперед из-за границы, которую я добавил в стиль

поэтому, пожалуйста, у вас есть идеи, как исправить мой код, чтобы предотвратить продвижение значка, когда я выбираю кнопку

Спасибо за помощь


person user3821206    schedule 11.02.2016    source источник
comment
Вы пытались настроить Padding на отрицательное BorderThickness?   -  person Nicholas Schuster    schedule 11.02.2016
comment
Вы имеете в виду, сэр, чтобы добавить стиль padding =-10,0,0,0 ?   -  person user3821206    schedule 11.02.2016
comment
Если ваш BorderThickness равен 10: да   -  person Nicholas Schuster    schedule 11.02.2016
comment
спасибо сэр за ваш ответ, теперь это работает :D   -  person user3821206    schedule 11.02.2016
comment
Я опубликую ответ для этого.   -  person Nicholas Schuster    schedule 11.02.2016


Ответы (1)


Проблема здесь в том, что граница не имеет толщины, когда она невидима. Когда он станет видимым, вся клиентская область будет смещена (и, возможно, обрезана) на количество пространства, которое сейчас необходимо для рисования границы (то есть толщины).

Чтобы избежать смещения, вы можете изменить отступы на отрицательную толщину границы. Таким образом, толщина границы перемещает содержимое вправо, тогда как содержимое перемещается влево. Это приводит к полному отсутствию движения.

person Nicholas Schuster    schedule 11.02.2016