2012-01-30 2 views
0

다른 사용자 컨트롤이있는 그리드가 포함 된 기본 창이 있습니다. 각 컨트롤은 별도의 Xaml에서 정의됩니다. 그런 다음 MainWindow.xaml에서 주 윈도우의 모든 입자를 찾습니다.링크 버튼에서 팝업을 열고 팝업 안에 버튼을 사용하여 팝업을 닫는 방법?

내 userControls 중 하나는 버튼이 포함 된 메뉴입니다. 메뉴의 일부 버튼을 클릭 한 후 팝업을 호출하고 싶습니다. 팝업에는 텍스트, 버튼이 포함되며 기본 창을 오버레이합니다. 그래서 질문은 팝업 메뉴에서 팝업을 호출하고 팝업에있는 버튼에서 그것을 닫는 방법입니까?

감사합니다.

답변

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 (기본값)로 변경하십시오. 이 상황에서 팝업 내부의 토글 버튼은 기본적으로 조금 이상하게 보일 것입니다. 그러나 더보기 좋게 스타일을 지정할 수 있습니다.

모든 코드가 ElementName으로 바인딩하는 대신 동일한 Xaml 파일에있는 경우 모두를 뷰 모델의 부울 속성에 바인딩 할 수 있습니다.

관련 문제