MENU

FELIPEDRONI 22/03/2012 17:16:37
#397989
Hey galera, estou com um problemão...
já um tempo estou estudando wpf(para ser mais claro Ribbon)
depois de quebrar muito a cabeça dei um passo...
o negócio é tenho meu menu pronto mas não consigo chamar ele no meu
form, o código fico assim:
<!--Form-->
Imports System.Windows.Forms
Imports Microsoft.Windows.Controls.Ribbon

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim host As System.Windows.Forms.Integration.ElementHost = New System.Windows.Forms.Integration.ElementHost

Dim uc1 As Teste.MainWindow = New Teste.MainWindow

host.Dock = DockStyle.Fill
host.Child = uc1

Me.Controls.Add(host)
End Sub
End Class

eo código do menu:

<ribbon:RibbonWindow x:Class=[Ô]Teste.MainWindow[Ô]
xmlns=[Ô]http://schemas.microsoft.com/winfx/2006/xaml/presentation[Ô]
xmlns:x=[Ô]http://schemas.microsoft.com/winfx/2006/xaml[Ô]
xmlns:ribbon=[Ô]clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary[Ô]
Title=[Ô]MainWindow[Ô]
x:Name=[Ô]RibbonWindow[Ô]
Width=[Ô]640[Ô] Height=[Ô]480[Ô]>

<Grid x:Name=[Ô]LayoutRoot[Ô]>
<Grid.RowDefinitions>
<RowDefinition Height=[Ô]Auto[Ô]/>
<RowDefinition Height=[Ô]*[Ô]/>
</Grid.RowDefinitions>

<ribbon:Ribbon x:Name=[Ô]Ribbon[Ô]>
<ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonApplicationMenu SmallImageSource=[Ô]T:\Felipe\Fontes\Am.ico[Ô]>
<ribbon:RibbonApplicationMenuItem Header=[Ô]Sair do SAM[Ô]
x:Name=[Ô]MenuItem1[Ô]

ImageSource=[Ô]P:\Icones\Icons_w7\167.ico[Ô]/>
</ribbon:RibbonApplicationMenu>
</ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonTab x:Name=[Ô]TabCliente[Ô]
Header=[Ô]Cliente[Ô]>
<ribbon:RibbonGroup x:Name=[Ô]Group1[Ô]>
<ribbon:RibbonButton x:Name=[Ô]btnConsulta[Ô]

LargeImageSource=[Ô]P:\Icones\Icons_w7\245.ico[Ô]
Label=[Ô]Consulta[Ô] />

<ribbon:RibbonButton x:Name=[Ô]btnCadastro[Ô]
LargeImageSource=[Ô]P:\Icones\Icons_w7\032.ico[Ô]
Label=[Ô]Cadastro[Ô]/>
</ribbon:RibbonGroup>

</ribbon:RibbonTab>
<ribbon:RibbonTab x:Name=[Ô]TabProdutos[Ô]
Header=[Ô]Produtos[Ô]>
<ribbon:RibbonGroup x:Name=[Ô]Grupo2[Ô]>
<ribbon:RibbonButton x:Name=[Ô]btnConsultaProdutos[Ô]
LargeImageSource=[Ô]P:\Icones\Icons_w7\245.ico[Ô]
Label=[Ô]Consulta[Ô]/>
<ribbon:RibbonButton x:Name=[Ô]btnCadProd[Ô]
LargeImageSource=[Ô]P:\Icones\Icons_w7\395.ico[Ô]
Label=[Ô]Cadastrar Produto[Ô]/>


</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>

</Grid>
</ribbon:RibbonWindow>
---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/--/---/--/---/---/--/

estou me baseando neste artigo www.linhadecodigo.com.br/artigo/1263/utilizando-controles-wpf-em-aplicacoes-windows-forms.aspx
Para quem quiser dar uma olhada no projeto esta ai...em vs 2010
PROFESSOR 16/12/2012 05:07:27
#416036
Na verdade, você deve [Ô]chamar[Ô] sua ribbon no código VB do XAML, e não no código VB do Windows Forms.
Ainda que haja a interoperabilidade, o ElementHost transmite eventos e propriedades públicas entre os dois formulários (hospedeiro e hospedado), mas não transmite componentes internos ou seus eventos, que são private ou protected.
Assim, por exemplo, no clique de cada botão de menu da Ribbon, no código VB do arquivo XAML, você deve disparar um evento para seu usercontrol, de forma que o Windows forms possa receber e processar esse evento..
Tópico encerrado , respostas não são mais permitidas