我有一個簡單的,水平的<Line>
元素。這條線有一個RotateTransform應用於它,它以我選擇的任何角度偏斜線。問題是在應用轉換之前之前計算行的渲染長度爲。結果是該行在旋轉後不再適合其父元素。如何在旋轉後調整WPF元素的大小,而不是之前?
我當前的代碼類似於此,使用15°爲例:
<Grid Background="Orange">
<Line HorizontalAlignment="Left" VerticalAlignment="Bottom"
RenderTransformOrigin="0,0" Stretch="UniformToFill"
StrokeThickness="1" Stroke="Green" X1="0" Y1="0" X2="1" Y2="0">
<UIElement.RenderTransform>
<RotateTransform Angle="-15" />
</UIElement.RenderTransform>
</Line>
</Grid>
結果是這樣的:
http://img179.imageshack.us/img179/2592/slantpartial.png
如圖所示,線不與接觸由於旋轉,控件的右側。無論我設置的角度如何,我都需要將線拉伸至儘可能大的尺寸並完全填充其父控件。角度在運行時會動態變化,我不能在當前項目中使用斜率計算。我需要保持RotateTransform作爲斜線的方法。
什麼,我需要完成的一個例子 - 同樣,用15°作爲一個例子:
http://img42.imageshack.us/img42/8276/slantcomplete.png
這不適用於RenderTransform,因爲該線在應用RenderTransform之前被佈局系統裁剪。但是,該解決方案可以與LayoutTransform完美協作。手動延長線會使佈局系統使用代碼指定的長度,覆蓋除「拉伸」以外的其他任何因素。線路的「拉伸」屬性需要設置爲「無」才能使此解決方案起作用。同樣,「HorizontalAlignment」和「VerticalAlignment」屬性不應設置爲「Stretch」。 – Giffyguy 2009-09-17 20:55:18
(系統不會允許我提高你的答案,這真的很奇怪......) – Giffyguy 2009-09-17 20:56:30