728x90
728x170
하나의 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
728x90
그리드형
'C# > WPF' 카테고리의 다른 글
[WPF] ListView 선택 대상 표시 안하기 (0) | 2020.12.24 |
---|---|
[WPF] Binding 항목 Horizontal 정렬하기 (0) | 2020.12.24 |
[WPF] Flat Button (0) | 2020.12.01 |
[WPF] Background="{x:Null}" Background="Transparent" 차이 (0) | 2020.11.05 |
[WPF] GradientStopCollection 의 Offset 컬러 구하기 (0) | 2020.10.20 |