Usuário com melhor resposta
Controles em cima do controle WindowsFormsHost

Pergunta
-
Bom dia,
Tenho um controle Windows Form "hospedado" em um WindowsFormsHost. Gostaria de colocar controles em cima do WindowsFormsHost, mas não estou conseguindo, tentei o seguinte:
<Window x:Class="TesteControles.Window1"
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"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Canvas>
<WindowsFormsHost Canvas.ZIndex="0">
<wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
</WindowsFormsHost>
<Button Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Name="btnTeste" Canvas.ZIndex="1" Height="97" Width="40">Button</Button>
</Canvas>
</Window>Mas não obtive sucesso.
Segui a mesma idéia desse tutorial:
http://www.wpftutorial.net/Canvas.html
Percebi o seguinte...
A propriedade ZIndex funciona muito bem quando eu tenho dois botões, duas elipses, ou seja, funciona para qualquer controle que não seja o WindowsFormsHost.
Quando eu tento utilizar a propriedade ZIndex para o WindowsFormsHost parece que não surte efeito, ou seja, o controle WindowsFormsHost sempre é exibido "por cima" do outro controle. Quando na verdade eu gostaria que ele fosse exibido "em baixo" do outro controle.
Alguém tem alguma sugestão ou sabe como resolver esse problema?
Agradeço desde já,
Ewerton.
Respostas
-
Ewerton,
Não é possível resolver esse tipo de problema, veja o texto abaixo.
In a WPF user interface, you can change the z-order of elements to control overlapping behavior. A hosted Windows Forms control is drawn in a separate HWND, so it is always drawn on top of WPF elements.
Layout Considerations for the WindowsFormsHost Element
http://msdn.microsoft.com/en-us/library/ms744952(VS.85).aspxAtt.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Marcado como Resposta Ewerton Rubio terça-feira, 8 de junho de 2010 11:32
Todas as Respostas
-
Ewerton,
Não é possível resolver esse tipo de problema, veja o texto abaixo.
In a WPF user interface, you can change the z-order of elements to control overlapping behavior. A hosted Windows Forms control is drawn in a separate HWND, so it is always drawn on top of WPF elements.
Layout Considerations for the WindowsFormsHost Element
http://msdn.microsoft.com/en-us/library/ms744952(VS.85).aspxAtt.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Marcado como Resposta Ewerton Rubio terça-feira, 8 de junho de 2010 11:32
-
-
Ewerton,
Pelo que pesquisei não é possível.
Um abraço.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com -
-
-
skroski,
Acredito que não porque o UserControl continua sendo um elemento do WPF.
Att.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com