gpt4 book ai didi

c# - 在 MahApps Metro 中覆盖 SqaureButton 样式

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:19 24 4
gpt4 key购买 nike

我注意到 MahApps Metro 提供的 SquareButtonStyle 没有 1 像素的边框。我正在寻找符合这种风格的东西:(Visual Studio 的按钮样式)

enter image description here

而 Metro Style 是这样的:

enter image description here

我已经查看了按钮样式的 XAML,但它显示该按钮的边框粗细为 1。如果其他按钮的边框粗细为 1px,这怎么可能呢,就像上面的按钮一样?我如何像我显示的关闭按钮一样覆盖此按钮。

这是 button.xaml 的链接(已编辑链接):https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Styles/Controls.Buttons.xaml

这是 SquareButton xaml:

<Style x:Key="SquareButtonStyle"
TargetType="{x:Type Button}">
<Setter Property="MinHeight"
Value="25" />
<Setter Property="FontFamily"
Value="{DynamicResource DefaultFont}" />
<Setter Property="FontWeight"
Value="SemiBold" />
<Setter Property="Background"
Value="{DynamicResource WhiteBrush}" />
<Setter Property="BorderBrush"
Value="{DynamicResource BlackBrush}" />
<Setter Property="Foreground"
Value="{DynamicResource TextBrush}" />
<Setter Property="Padding"
Value="5,6" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="MouseOverBorder">
<EasingDoubleKeyFrame KeyTime="0"
Value="1" />
</DoubleAnimationUsingKeyFrames>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderThickness)"
Storyboard.TargetName="MouseOverBorder">
<EasingThicknessKeyFrame KeyTime="0"
Value="2" />
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="PressedBorder">
<EasingDoubleKeyFrame KeyTime="0"
Value="1" />
</DoubleAnimationUsingKeyFrames>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderThickness)"
Storyboard.TargetName="MouseOverBorder">
<EasingThicknessKeyFrame KeyTime="0"
Value="0" />
</ThicknessAnimationUsingKeyFrames>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderThickness)"
Storyboard.TargetName="PressedBorder">
<EasingThicknessKeyFrame KeyTime="0"
Value="2" />
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
Storyboard.TargetName="DisabledVisualElement">
<SplineDoubleKeyFrame KeyTime="0"
Value="0.7" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="contentPresenter">
<EasingDoubleKeyFrame KeyTime="0"
Value="0.3" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused" />
<VisualState x:Name="Unfocused" />
</VisualStateGroup>
<VisualStateGroup x:Name="ValidationStates">
<VisualState x:Name="Valid" />
<VisualState x:Name="InvalidFocused" />
<VisualState x:Name="InvalidUnfocused" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Background"
BorderBrush="{DynamicResource BlackBrush}"
BorderThickness="2"
Background="{TemplateBinding Background}" />
<Rectangle x:Name="DisabledVisualElement"
Fill="{DynamicResource ControlsDisabledBrush}"
IsHitTestVisible="false"
Opacity="0" />
<Border x:Name="MouseOverBorder"
Background="{DynamicResource GrayBrush8}"
Opacity="0" />
<Border x:Name="PressedBorder"
Background="{DynamicResource BlackBrush}"
Opacity="0"
BorderBrush="{DynamicResource BlackBrush}" />
<ContentPresenter x:Name="contentPresenter"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content, Converter={StaticResource ToLowerConverter}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
OpacityMask="{x:Null}" />
</Grid>

<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Foreground"
Value="{DynamicResource BlackBrush}" />
</Trigger>
<Trigger Property="IsPressed"
Value="true">
<Setter Property="Foreground"
Value="{DynamicResource WhiteBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

最佳答案

我认为是这件作品 <Border x:Name="Background"
BorderBrush="{DynamicResource BlackBrush}"
BorderThickness="2"
Background="{TemplateBinding Background}" />

关于c# - 在 MahApps Metro 中覆盖 SqaureButton 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com