2012-03-06 37 views
0

我想在頂部Winform控件上顯示WPF控件。 我希望WPF按鈕將出現在Winform文本框的頂部。頂部Winform控件無法看到WPF控件

結果是,WPF控件隱藏在winform文本框的後面,我看不到它。 這是爲什麼?

這是我的代碼:

<UserControl x:Class="Philips.PmsCT.Host.Applications.ExamApplication.ScanRulerComponent.WPFHostWF" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" Width="800" Height="120"> 
<Grid> 
    <WindowsFormsHost > 
     <wf:TextBox BackColor="LightBlue" /> 
    </WindowsFormsHost> 
    <Button Width="100" Height="25" Background="Red"/> 
</Grid> 

+0

此代碼顯示與您的問題不匹配的WPF控件內的Windows窗體。父窗口窗體在哪裏? – ChrisF 2012-03-06 13:00:42

+0

@ChrisF我的猜測是,他想要在TextBox頂部的WPF按鈕。所以無論他對使用winforms的wpf還是一個簡單的佈局問題都有問題。 – dowhilefor 2012-03-06 13:05:22

+0

嗨ChrisF,我會尖銳我的問題,我希望WPF按鈕將顯示在Winform文本框的頂部。 – EitanG 2012-03-06 13:11:19

回答

3

你似乎有Airspace問題。 因此,您可以重新排列兩個控件,它們彼此並排佈置,而不是彼此重疊或使用Wpf文本框,或者必須向後彎曲以緩解空域問題。

+0

.NET 4.5的地址空域問題:http://msdn.microsoft .com/en-us/library/bb613588(v = VS.110).aspx#airspace – 2012-03-06 13:09:51

+0

我想要的佈局是在WinForm TextBox頂部的WPF按鈕。 – EitanG 2012-03-06 13:13:24

+0

@ m-y是的,它很有價值,可以添加這些信息,不幸的是,問題是缺少使用的WPF版本。 – dowhilefor 2012-03-06 13:14:00

0

所有WPF控件都在一個本地窗口中呈現。例如,您可以通過SPY ++進行檢查。 幾乎每個WindowsForm控件都在它自己的窗口中呈現。再次,您可以通過SPY ++進行檢查。 當一個窗口A(WPF)被另一個窗口B(Winform控件)覆蓋時,您希望產生行爲。同時您希望窗口B被A(wpf按鈕)覆蓋。我不知道是否可以沒有任何鉤子。 可能的解決方案是: 1.在WinForm Panel中的TextBox所在的主機。 2.只用必需的按鈕創建WPF表單並在第一個表單上顯示它。