사용자가 다시 구성 할 수 있도록 메뉴 일부에서 작업 중입니다. 이 메뉴에는 12 개의 요소가있는 격자 (4x3)가 있으며, 모두 NavButton 유형이며 Button을 확장 한 클래스입니다. NavButton에는 단추를 그리드 전체로 이동시킬 수있는 끌기 기능이 있으며 현재는 각 단추가 MouseEnter 이벤트에 있어야하는 위치를 결정하는 중입니다.WPF 사용자 지정 이벤트 만들기
NavButton을 다시 배치해야하는 위치를 결정하기 위해 MouseEnter에서 밝아지는 얇은 직사각형을 배치 했으므로 어떻게 작동해야하는지 생각했습니다. 내 문제는 네비게이션 버튼이 직사각형 위로 드래그 될 때 마우스가 사각형 위에있는 네비게이션 버튼 위에있을 때 MouseEnter 이벤트가 실행되지 않는다는 것입니다. 죄송 합니다만 혼란 스럽지만 아래 코드를 게시하겠습니다.
이 모든 것이 NavButton이 MouseEnter 이벤트의 작동 방식과 비슷한 "Enterters"시점을 결정하는 이벤트를 생성 할 수 있는지 궁금합니다.
C 번호 :
private void rectangle_MouseEnter(object sender, MouseEventArgs e)
{
foreach (UIElement uie in this.grids[tabNavigation.SelectedIndex].Children)
{
if (uie.GetType() == typeof(NavButton_UC))
{
if ((uie as NavButton_UC).IsDragging)
{
(sender as Rectangle).Fill = Brushes.Gray;
}
}
}
}
private void rectangle_MouseLeave(object sender, MouseEventArgs e)
{
(sender as Rectangle).Fill = Brushes.Black;
}
XAML :
//The Style is in my ResourceDictionary
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="Black" />
<Setter Property="Height" Value="151" />
<Setter Property="Width" Value="10" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Opacity" Value=".6" />
<EventSetter Event="MouseEnter" Handler="rectangle_MouseEnter" />
<EventSetter Event="MouseLeave" Handler="rectangle_MouseLeave" />
</Style>
...
<Grid Name="grid" Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="22"></RowDefinition>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.Column="0" Name="rect00" />
<Rectangle Grid.Row="0" Grid.Column="1" Name="rect01" />
<Rectangle Grid.Row="0" Grid.Column="2" Name="rect02" />
<Rectangle Grid.Row="1" Grid.Column="0" Name="rect10" />
<Rectangle Grid.Row="1" Grid.Column="1" Name="rect11" />
<Rectangle Grid.Row="1" Grid.Column="2" Name="rect12" />
<Rectangle Grid.Row="2" Grid.Column="0" Name="rect20" />
<Rectangle Grid.Row="2" Grid.Column="1" Name="rect21" />
<Rectangle Grid.Row="2" Grid.Column="2" Name="rect22" />
<Rectangle Grid.Row="3" Grid.Column="0" Name="rect30" />
<Rectangle Grid.Row="3" Grid.Column="1" Name="rect31" />
<Rectangle Grid.Row="3" Grid.Column="2" Name="rect32" />
<TextBlock Grid.Row="5" Grid.Column="3" Name="TB" />
</Grid>
내가 WPF 상당히 새로운 오전, 그래서 어떤 통찰력을 주시면 감사하겠습니다. 고맙습니다.
그 기사 주셔서 감사합니다! 그것은 Drag Events가 어떻게 작동하는지 더 많이 이해할 수있었습니다. –