2012-03-06 47 views
0

上部WinformコントロールにWPFコントロールを表示します。 WinForm TextBoxの上にWPFボタンが表示されます。上部WinformコントロールのWPFコントロールが表示されません

結果は、WPFコントロールがwinform TextBoxの背面に隠れているため、表示できません。 なぜですか?

これは私のコードです:

<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フォームを示しています。親Windowsフォームはどこですか? – ChrisF

+0

@ChrisF私の推測では、彼はTextBoxの上にWPFボタンが必要です。だから、彼はwinformsで作業するwpfに問題があるのか​​、それとも簡単なレイアウト上の問題かです。 – dowhilefor

+0

こんにちはChrisF、私は私の質問をシャープにする、私はWPFボタンがWinform TextBoxの上に表示されることを望む。 – EitanG

答えて

3

あなたはAirspace問題を抱えているように見えます。 2つのコントロールを並べて配置したり、重ねて配置したり、Wpf TextBoxを使用したりすることができます。また、実際に空域の問題を緩和するために後方に曲がる必要があります。

+0

.NET 4.5アドレス空域の問題:http://msdn.microsoft .com/en-us/library/bb613588(v = VS.110).aspx#airspace –

+0

私が必要とするレイアウトは、winform TextBoxの上にあるWPFボタンです。 – EitanG

+0

@ m-yはい、この情報を追加するのは貴重ですが、残念ながら質問には使用されたWPFのバージョンがありません。 – dowhilefor

0

すべてのWPFコントロールは、1つのネイティブウィンドウでレンダリングされます。たとえば、SPY ++を介してチェックすることができます。 ほとんどの各WindowsFormコントロールは、独自のウィンドウをレンダリングします。ここでもSPY ++で確認できます。 1つのウィンドウA(WPF)が別のウィンドウB(Winformコントロール)で覆われているときの動作を生成したいとします。同時に、ウィンドウBにはA(wpfボタン)が表示されます。私はそれがフックなしで可能であるかどうかわからない。 解決策は次のとおりです。 1. TextBoxがあるWinForm Panel内のホストWPF。 2.必要なボタンのみを含むWPFフォームを作成し、最初のフォームに表示します。

関連する問題