none
Windows Form使用WPF UserControl呼叫public method或attribute問題 RRS feed

  • 問題

  • 各位好,想請教1個問題

    以前在WinForm使用UserControl的時候,想要呼叫寫在裡面的public method或attribute時

    只要這樣寫UserControlID.XXX就可以了

    但是今天這個UserControl假如是用WPF寫時

    同樣的方式確是不行

    在WinForm.cs想要UserControlID.XXX就無法抓到該 method或attribute

    請問WPF在使用public method或attribute是不是有特殊的語法

    我的開發環境是Win 7+VS 2008+.NET 3.5

    懇請有緣人解答

    謝謝

    2010年12月17日 上午 07:36

解答

  • To 阿尼:

    該範例是針對Wpf Application+Wpf User Control

    我的狀況是傳統WinForm+Wpf User Control

    我測試過我寫的Wpf User Control在Wpf Application是可以用UserControlID.XXX呼叫public method或attribute

    但是在WinForm下同樣的語法是無效的

    我後來嘗試去看WinForm的Designer.cs

    發現它會生出Wpf User Control加上1個System.Windows.Forms.Integration.ElementHost

    Wpf User Control會包在System.Windows.Forms.Integration.ElementHost裡

    所以我透過Designer.cs就知道想要存取Wpf User Control的ID

    這樣就可以呼叫public method或attribute(之前呼叫不到是因為不知道多了一層ElementHost,所以都是用ElementHost ID)

    但是這樣蠻不直觀的

    請問這是WinForm+WPF Control先天的限制嗎?

    • 已標示為解答 Wilson Fang 2010年12月23日 上午 02:25
    2010年12月17日 上午 09:42

所有回覆

  • To 阿尼:

    該範例是針對Wpf Application+Wpf User Control

    我的狀況是傳統WinForm+Wpf User Control

    我測試過我寫的Wpf User Control在Wpf Application是可以用UserControlID.XXX呼叫public method或attribute

    但是在WinForm下同樣的語法是無效的

    我後來嘗試去看WinForm的Designer.cs

    發現它會生出Wpf User Control加上1個System.Windows.Forms.Integration.ElementHost

    Wpf User Control會包在System.Windows.Forms.Integration.ElementHost裡

    所以我透過Designer.cs就知道想要存取Wpf User Control的ID

    這樣就可以呼叫public method或attribute(之前呼叫不到是因為不知道多了一層ElementHost,所以都是用ElementHost ID)

    但是這樣蠻不直觀的

    請問這是WinForm+WPF Control先天的限制嗎?

    • 已標示為解答 Wilson Fang 2010年12月23日 上午 02:25
    2010年12月17日 上午 09:42