KeiStory

WPF DataTrigger 를 이용해 특정 Control 의 Action 에 따라 처리하기

 

Grid 안에 두개의 사각형이 있는 경우 서로 영향받을수 있도록 처리하기 위해서 DataDataTrigger 를 이용하여 처리합니다.

아래 예시는 하나의 사각형에 마우스가 오버된 경우 다른  사각형 컨트롤이 숨겨져있다가 보여지는 처리를 한 것입니다.

<Window x:Class="WpfAppControlTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfAppControlTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid HorizontalAlignment="Center">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="100"/>
        </Grid.ColumnDefinitions>

        <Rectangle x:Name="B" Grid.Column="0" Fill="Green" Width="100" Height="100"/>

        <Rectangle x:Name="C" Grid.Column="1" Fill="Yellow" Width="100" Height="100">
            <Rectangle.Style>
                <Style TargetType="Rectangle">
                    <Setter Property="Visibility" Value="Collapsed"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=B,Path=IsMouseOver}" Value="True">
                            <Setter Property="Visibility" Value="Visible" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Rectangle.Style>
        </Rectangle>
    </Grid>
</Window>

Grid 의 Trigger 을 통해 처리하는 것은 불가능하며 위 처럼 영향 받고자 하는 컨트롤에 처리를 해주어야합니다.

 

참고 : stackoverflow.com/questions/4208731/create-a-simple-wpf-trigger-on-one-object-that-affects-another

 

Create a simple wpf trigger on one object that affects another

This is the closest that I have come to creating a simple trigger on this. I just want the datagrid's IsMouseOver == true to show the button. The problem is that the Setter's TargetName says: The

stackoverflow.com

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band