현재 다른 WPF 투쟁, 즉 mouseEvents와 싸우고 있습니다. 기본적으로 매우 간단한 컨트롤을 가지고 있습니다 (Border
에는 Grid
이 포함되어 있습니다. 그 중 일부는 TextBlocks
입니다). 간단한 동작을 얻으려고합니다 : 두 번 클릭하면 컨트롤을 편집 모드로 전환해야합니다 (TextBlocks
은 실제로 동일한 데이터에 바인딩 된 TextBoxes
을 숨 깁니다.)WPF MouseDown 이벤트가 컨트롤의 모든 곳에서 실행되지 않습니다.
아직 까진 고민 중입니다. MouseDoubleClick
내가 (TextBlock의을 클릭, 등) 컨트롤을 클릭하면 바로 발사 내 UserControl
에 연결. 내가 TextBlocks
사이의 빈 공간을 클릭하면, 아무것도. 트리거되지 않습니다조차 MouseDown
.
을 내가 그것을 어떻게 만들 수 모든 마우스 클릭을 잡으려고 노력합니까? Border
에 MouseDown
이벤트를 연결하면 테두리의 모든 클릭을 잡아야한다고 생각했지만 ... 클릭 수를 포착하지 못했습니다. 국경의 빈 부분에. 여기
XAML :
<StackPanel Orientation="Vertical">
<Border Height="400" Width="400" HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="Black" BorderThickness="2"
MouseDown="Border_MouseDown" MouseUp="Border_mouseUp">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Border>
<TextBlock Height="100" Width="300" HorizontalAlignment="Center" TextAlignment="Center" x:Name="thetext" Visibility="Collapsed"
Foreground="White" Background="Red" Text="CLICKED!" />
</StackPanel>
코드 숨김
이제private void Border_MouseDown(object sender, MouseButtonEventArgs e)
{
thetext.Visibility = Visibility.Visible;
}
private void Border_mouseUp(object sender, MouseButtonEventArgs e)
{
thetext.Visibility = Visibility.Collapsed;
}
하면 "허풍"중 하나를 클릭하십시오 텍스트 : "CLICKED"텍스트가 나타납니다. TextBlock 사이에서 다른 곳을 클릭 해보십시오. 아무 일도 일어나지 않습니다.
감사합니다. 트릭을 할해야
음. 그건 예상치 못하게 쉽고 바보 같았습니다. 빠른 답변 주셔서 감사합니다. 나는 항상 기본 배경색이 투명하다고 생각했습니다. 고마워요! 언젠가 WPF와의 싸움이 시작됩니다. – Damascus