2012-01-30 8 views
0

私はメインウィンドウを持っていて、異なるユーザーコントロールを持つグリッドを含んでいます。各コントロールは別のXamlで定義されています。 MainWindow.xamlでは、私はメインウィンドウの全てのパーティクルにマッチします。リンクボタンからポップアップを開き、ポップアップ内のボタンを使って閉じる方法は?

私のuserControlsの1つは、ボタンを含むメニューです。 メニューのボタンをクリックしてポップアップを呼びたいポップアップにはテキストとボタンが含まれ、メインウィンドウの上に重ねられます。 それでは、メニューからポップアップを呼び出す方法と、ポップアップにあるボタンから閉じる方法があります。

ありがとうございます!

答えて

0

メニューにトグルボタンを配置し、ポップアップのIsOpenプロパティをトグルボタンのIsCheckedプロパティにバインドできます。

<ToggleButton x:Name="toggle" Content="ToggleButton" HorizontalAlignment="Left" Height="68" Margin="78,104,0,0" VerticalAlignment="Top" Width="102"/> 
    <Popup IsOpen="{Binding ElementName=toggle, Path=IsChecked}" StaysOpen="False"> 
     <Grid Background="#FFE5E5E5" Height="299" Width="269"> 
      <ToggleButton IsChecked="{Binding ElementName=toggle, Path=IsChecked}" Content="Close" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/> 
     </Grid> 
    </Popup> 

クリックしたときにポップアップが消えないようにするには、StaysOpenをTrue(デフォルト)に戻します。このような状況では、ポップアップ内のトグルボタンはデフォルトで少し奇妙に見えますが、より見栄えの良いようにスタイルを設定することができます。

コードがすべて同じXamlファイル内にあるわけではない場合、ElementNameでバインドする代わりに、すべてをビューモデルのブール値プロパティにバインドすることができます。