首先,抱歉我的英语不好。
我想让按钮“弹出”?当我将鼠标悬停在它们上面时在我的应用程序中。
这是我想出的:
<Style x:Key="SelectButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Content">
<Setter.Value>
<Image Source="\directory"/>
</Setter.Value>
</Setter>
<Setter Property="Margin">
<Setter.Value>
<Thickness Bottom="10" Right="10" Top="10" Left="10"/>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Content">
<Setter.Value>
<Image Source ="\directory"/>
</Setter.Value>
</Setter>
<Setter Property="Margin">
<Setter.Value>
<Thickness Bottom="0" Right="0" Top="0" Left="0"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
你可以在这里看到编译后的样子:
问题是,每当我更改按钮的边距时,它都会将应用程序的所有其他元素向下推。老实说,我没有想法。
提前致谢。
最佳答案
嗯,您正在调整按钮的大小,这会导致此行为。这完全是预料之中的。
幸运的是,您真正想做的是申请 RenderTransform .它们不影响布局。从文档中,
A render transform does not regenerate layout size or render size information. Render transforms are typically intended for animating or applying a temporary effect to an element. For example, the element might zoom when focused or moused over, or might jitter on load to draw the eye to that part of the user interface (UI).
您需要使用 ScaleTransform .变形很有趣。在您使用它后不久就会意识到您可以为它们制作动画,然后您就会为它们制作动画。
关于c# - WPF 更改边距将其他元素向下推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48713514/