2011-08-01 41 views
0

有沒有像Silverlight中的「OnPaint」方法?有沒有像Silverlight中的「OnPaint」方法?

回到我寫C++的時候,我發現使用OnPaint事件來定製屏幕上類的顯示很容易?

在Silverlight中是否有等價物?如果我想在屏幕上顯示UserControl時執行某些操作,我會覆蓋哪種方法?

我注意到了這個帖子: C# WPF OnPaint method alternative? 但似乎在Silverlight,THRE是一個控件類沒有「的OnRender」的方法。

+1

OnRender在Silverlight中不存在。這是我無法將一些代碼轉換成它的原因之一。 –

+0

您是否知道這種方法的存在與您正在使用的編程語言無關?如果您可以從C#訪問OnPaint方法,那麼您也可以從VB.NET或任何其他.NET語言中使用它。 –

+2

你想要完成什麼*特定的*? – Gabe

回答

2

OnPaint是一種解決方法...允許您自定義控件的外觀。那是因爲你對WinForms應用程序中的任何控件的默認外觀沒有太多控制。

隨着Silverlight的所有變化。現在使用templatesstyles對每個控件進行了有效剝皮,並且您可以如何定製它們的限制很少。有太多的鏈接,所以我只爲你抓了一對夫婦。

給自己一本關於Silverlight的好書,並學習使用它的正確方法(不在其周圍)。 This one是我的最愛之一。

如果您有具體的事情要做,對用戶控件的外觀,最好將其列出,並找出最好的方法來做到這一點Silverlight的方式。 :)

+0

+1,但我會說它__Using__ OnPaint __customise__ __existing__控件的外觀是黑客行爲。一般而言,OnPaint是爲新的原始離散控件繪製UI的正確位置。 – AnthonyWJones

+0

@AnthonyWJones:只是詩意的執照...刪除:) –

0

你還沒有指定你想要做的。如果你只是想知道幀的渲染時間,CompositionTarget.Rendering Event會告訴你。如果你真的想繪製被渲染的幀,你不能這樣做。

0

它是LayoutUpdated。 如在:

... 
      this.LayoutUpdated += new EventHandler(LayoutUpdated); 

} 

    void LayoutUpdated(object sender, EventArgs e) 
{} 
相關問題