2014-06-06 2 views
2

내 응용 프로그램에는 (팁, 정보 등)이 포함 된 Startup Window이 있습니다. 창의 일부분은 왼쪽에 3 개의 Labels을 포함하고 오른쪽에는 3 개의 Buttons을 숨 깁니다. 내가 원하는 것은 Label의 다른면에있는 버튼이 나타나는 Labels 중 하나를 사용자가 가리킬 때마다입니다.WPF의 레이블 MouseHover에 단추 표시

ButtonTriggers을 사용하여 표시하는 방법을 알고 있지만 Label을 가리키면 버튼을 표시하는 방법을 알고 있습니다.

그런 일이 가능할까요?

답변

3

DataTriggerBinding.ElementName 속성을 사용하면 쉽게 설정할 수 있습니다.

가 예정되어있는 UI 요소에 DataTrigger를 추가

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Button Grid.Row="0" Content="Click me"> 
     <Button.Style> 
      <Style TargetType="{x:Type Button}"> 
       <Setter Property="Visibility" Value="Hidden" /> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsMouseOver, 
         ElementName=SomeLabel}" Value="True"> 
         <Setter Property="Visibility" Value="Visible" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 
    </Button> 
    <Label Grid.Row="1" Name="SomeLabel" Content="Hover over me" 
     Background="LightGreen" /> 
</Grid> 

뭔가 다른 UI 요소에 발생하면 하나의 UI 요소에 영향을하려고,이 기억하려고 :이 간단한 예는 방법을 보여줍니다 다른 UI 요소의 변경에 대한 응답으로 변경됩니다 ... 다른 방법으로 문제를 해결할 가능성이 큽니다.