tôi đã thực hiện sau đây ứng dụng (như là một thử nghiệm)Chạm vào Lỗi trong WPF?
XAML:
<Window x:Class="GUITest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Background="Transparent">
<TextBlock Text="openDialog" Background="Red" HorizontalAlignment="Center" VerticalAlignment="Top" MouseDown="TextBlock_MouseDown" />
</Grid>
</Window>
C#:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
Console.Out.WriteLine(dlg.FileName);
}
}
}
tôi bắt sự kiện mouseDown vì nó bắt cả hai nút chuột xuống các sự kiện và chạm xuống sự kiện . Mã có hành vi mong đợi cho các nhấp chuột. Chạm cho tôi một số rắc rối.
Nếu tôi chạm vào TextBlock, nó sẽ mở ra một cửa sổ hộp thoại như được yêu cầu. sau khi đóng nó, bất kỳ liên lạc nào trên cửa sổ sẽ mở cửa sổ hộp thoại, ngay cả khi chạm không vào TextBlock.
Đây có phải là lỗi không? Tôi có thể làm việc này không?
CHỈNH SỬA: tôi đã đăng giải pháp, một bản sửa lỗi thực tế sẽ vẫn hữu ích
Tôi có hai quan sát - một, nếu bạn di chuyển cửa sổ, vấn đề dừng lại, và hai, trong một tình huống thực tế như thế này, có lẽ bạn sẽ muốn sử dụng một nút (tôi biết đây chỉ là một bài kiểm tra, vì vậy đây là một câu hỏi thú vị). Có lẽ điều này có thể giúp bạn nghĩ ra điều gì đó. – Hosch250
Tôi xin lỗi, tôi không thể tìm thấy bất kỳ thứ gì hoạt động. – Hosch250
@ hosch250 Cảm ơn bạn đã nhấn nút. Nó không thực sự là một câu trả lời cho vấn đề nhưng nó là một công việc xung quanh. Mặc dù vậy, tôi muốn nút trông giống như một TextBlock, vì vậy tôi đã thiết lập lại nút này, sớm đăng giải pháp của tôi – RazorEater