2011-08-17 33 views
3

調整我創建Silverlight中的用戶控件就知道了,所以現在我可以多次重複使用siply在任何地方我想要的。該控件還使用彈出窗口。當彈出窗口打開時,我以編程方式設置其位置,使其看起來像錨定在控件上。但是,當此彈出窗口已經可見並且用戶更改了Internet Explorer窗口的大小時,頁面的內容將被移動並且不會移動彈出窗口。 [顯然。]所以它看起來不再像控制器那樣。如何解決它?哪個事件要處理?需要在該窗口由用戶

我希望有一些事件,當用戶改變窗口的大小被解僱。或者甚至更好的事件可以通知我何時擁有控件被重新定位,所以我知道控件的新位置(爲了計算彈出的座標,我需要知道)。因爲我希望它能夠作爲用戶控件工作,所以我更喜歡控件本身的本地事件(即不會搞亂任何全局頁面/窗口內容)。請幫助我找到正確的事件。

更新:現在在我看來,從字面上我需要時擁有控制移至知道。因爲移動的原因也可能有其他原因(除了上述窗口大小的變化外)。

回答

1

我認爲你正在尋找SizeChanged事件。您可以通過訂閱來了解何時調整彈出窗口的大小。

如果你的控制,因爲其他控制的移動,這可能不是什麼幫助。由於它可能不會調整大小,只能安排在新位置。

如果這是一個問題,你可以使用LayoutUpdated,以確定是否有任何一個元素中改變。爲此,您需要在RootVisual或您的元素上添加一個處理程序。

+0

我很害怕我真的需要知道我的控件何時移動。調整整個窗口大小隻是控制移動的唯一原因,但不僅僅是一個。 –

+0

@Al - Gotcha,那麼你可能不得不使用LayoutUpdated。 – CodeNaked

+0

好吧,它是LayoutUpdated。謝謝。 –