Tôi đang làm việc trên ứng dụng WPF nơi tôi có sự kiện nhấp đúp ở mức cửa sổ giúp tối đa hóa cửa sổ ứng dụng khi người dùng tăng gấp đôi nhấp vào bất kỳ nơi nào trong cửa sổ. Tuy nhiên, tôi cũng có một điều khiển tùy chỉnh trong cửa sổ ứng dụng và một sự kiện nhấp đúp riêng biệt trong điều khiển tùy chỉnh. Khi người dùng nhấp đúp vào điều khiển tùy chỉnh, chỉ sự kiện nhấp đúp của kiểm soát mới kích hoạt và cửa sổ sẽ không thay đổi kích thước. Mã của tôi trông giống như sau:Nhấp đúp vào sự kiện xảy ra ở mức cửa sổ và mức điều khiển, ngay cả khi nó được xử lý trong phạm vi kiểm soát
public class Window
{
private void window_DoubleClick(object sender, EventArgs e)
{
/// Maximize/minimize window
}
private void myCustomControl_DoubleClick(object sender, EventArgs e)
{
/// Do other things, but PLEASE don't resize!
e.Handled = true;
}
}
Và XAML của tôi trông giống như sau:
<Window x:class="MyProject.MyWindow"
MouseDoubleClick="window_DoubleClick">
<Grid Grid.Row="0" Margin="0">
<local:myCustomControl
MouseDoubleClick="myCustomControl_DoubleClick"/>
</Grid>
</Window>
Thật không may, với mã này tại chỗ, khi người dùng click đúp chuột trong việc kiểm soát, sự kiện điều khiển hỏa hoạn, nhưng sự kiện Window cũng cháy. Tôi đã thử thiết lập e.Handled = true trong sự kiện điều khiển, nhưng sự kiện Window vẫn cháy. Điều duy nhất mà đã ngừng mức Window kích đúp vào sự kiện từ bắn được xử lý xem trước các điều khiển tùy chỉnh của double-click kiện sử dụng này:
private void myCustomControl_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
}
Mặc dù sự kiện preview dừng Window kích đúp vào trước khi nó có thể bắn, Tôi không thể sử dụng nó mà không cần phải cấu trúc lại một chút mã. Điều khiển tùy chỉnh của tôi có một vài điều khiển con cũng xử lý sự kiện nhấp đúp của nó. Nếu sự kiện xem trước được gọi ở cấp độ kiểm soát của cha mẹ, sự kiện nhấp đúp không bao giờ đường hầm xuống qua các điều khiển con và do đó nhấp đúp không làm những gì tôi muốn. Nếu có thể, tôi muốn tránh phải tái cấu trúc bất kỳ mã nào trong các điều khiển con. Điều đó đang được nói, câu hỏi của tôi là: Có cách nào để dừng sự kiện nhấp đúp ở cấp cửa sổ không khi sự kiện nhấp đúp đã được xử lý? Tôi đã lái xe bản thân mình điên cố gắng để tìm ra điều này .. bất kỳ trợ giúp được đánh giá cao!
Vui lòng xem ["Câu hỏi có nên bao gồm" thẻ "trong tiêu đề của họ không?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), trong đó sự đồng thuận là "không, họ không nên"! –