为什么我应该使用ScaleX="2“,而不是我的控件宽度的两倍?
<Button Width = "100" Content="Button1"/>
<Button Width = "50" Content="Button2">
<Button.RenderTransform>
<ScaleTransform ScaleX="2" />
</Button.RenderTransform>
</Button>这两个按钮看起来完全一样,所以再一次,什么比例是好的
发布于 2011-07-15 08:41:00
如果它比一个有宽度的Button更复杂呢?如果你有一个复杂的路径/几何图形,或者甚至是一组控件呢?您不会想要手动更改所有内容。如果您有一个自定义控件,其中一个实例的大小为100x100,另一个实例的大小为150x150,该怎么办?如果你正在实现缩放功能(比如google地图)呢?
简而言之,对于您的特定示例,它没有提供太多用处。但在许多其他情况下,它是这样做的。
发布于 2011-07-15 08:41:58
你对“完全相同”的概念似乎和我的不同。

使用Width和Height指定的大小会影响控件在布局中占用的空间大小,这意味着控件可能会占用更多或更少的空间,但字体大小将保持不变。RenderTransform是在此基础上的一种操作,它不再关心布局,因此可能会扭曲控件。
渲染变换不会重新生成布局大小或渲染大小信息。渲染变换通常用于为元素设置动画或对元素应用临时效果。例如,元素在被聚焦或鼠标移过时可能会缩放,或者在加载时可能会抖动以将视线吸引到用户界面(UI)的该部分。
另请参见LayoutTransform属性,该属性确实会影响布局,但仍会扭曲控件。
发布于 2011-07-15 08:26:49
当您不能缩放控件的某些部分时,它很有用。考虑一下DatePicker控件。默认实现的下拉日历对于我的用户来说太小了,所以我在我的App.xaml文件中引入了这段XAML:
<Style TargetType="w:DatePicker">
<Setter Property="CalendarStyle">
<Setter.Value>
<Style TargetType="w:Calendar">
<Setter Property="LayoutTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.5" ScaleY="1.5" />
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>现在日历是原来的1.5倍了,我的用户很高兴。没有可以直接设置的"CalendarWidth“或"CalendarHeight”属性,所以ScaleTransform节省了时间。
https://stackoverflow.com/questions/6701443
复制相似问题