WPF 更改边距将其他元素向下推
WPF changing margin pushes other elements down
首先,抱歉我的英语不好。
当我将鼠标悬停在按钮上时,我试图在我的应用程序中创建按钮 "pop?"。
这是我想出的:
<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。变形很有趣。在你使用它后不久你就会意识到你可以为它们制作动画,然后你就会为它们制作动画。
首先,抱歉我的英语不好。
当我将鼠标悬停在按钮上时,我试图在我的应用程序中创建按钮 "pop?"。
这是我想出的:
<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。变形很有趣。在你使用它后不久你就会意识到你可以为它们制作动画,然后你就会为它们制作动画。