我在Silverlight 5中創建設計環境,用戶可以從位於屏幕左側的面板拖放一些項目。用戶也可以通過鼠標和滾動條縮放/平移場景。畫布有一個TranslateTransform,在平移場景時被操作,但我不希望我的UI元素被平移。我如何排除這些元素受到平移過程的影響?從畫布中排除一些元素TranslateTransform
我用下面的XAML畫布變換:
<Canvas.RenderTransform>
<TransformGroup x:Name="transformGroup">
<ScaleTransform x:Name="CanvasScale" ScaleX="1.0" ScaleY="1.0"></ScaleTransform>
<TranslateTransform x:Name="CanvasPan" ></TranslateTransform>
</TransformGroup>
</Canvas.RenderTransform>
然後我改變CanvasScale和CanvasPan代碼放大/平移現場,但所有對象(包括UI元素)的影響,我的場景有點複雜所以我認爲最好的(或唯一的)方法是從這些轉換中排除UI元素。
聽起來像一個有趣的項目,但難以可視化你的意思?你是說你只是想(例如)一些按鈕和隨機UI的東西留下來,而你的帆布下的東西分別做他們的事情? –
是的,你可以想象我的應用程序像MS-Paint,我有一些標準的UI(狀態欄,工具欄和...)以及用戶可以繪製的場景。當用戶平移場景時UI對象應該保持不動,它怎麼可能? –