sách gpt4 ăn đã đi

cửa sổ bật lên tùy chỉnh avalonia

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2023-02-07 14:31:29 25 4
mua khóa gpt4 giày nike

Khi sử dụng avalonia, một số chức năng nhất định cần có lời nhắc. Ví dụ: người dùng cần được nhắc về các trường hợp ngoại lệ hoặc thành công, do đó, chức năng bật lên cần được triển khai riêng và các thành phần bên trong có thể được tùy chỉnh. Trong vấn đề này, một cửa sổ bật lên nhỏ đơn giản. -up sẽ được thực hiện thủ công trên windows và có thể tùy chỉnh dễ dàng.

Tạo dự án

Để triển khai, chúng ta cần tạo mẫu dự án avalonia MVVM.

Và được đặt tên là PopoverExample.

Sau đó, nó luôn được tạo theo mặc định.

Tạo thành phần bật lên

Tạo một thành phần trong thư mục Chế độ xem, chọn mẫu Cửa sổ và tạo Hộp thoại tên.

Sau đó mở tệp Dialog.axaml và sửa đổi mã liên quan.

                        
                               Không có          


                        
                      

Đoạn mã sau được sử dụng để ẩn thanh tiêu đề mặc định.

                        
                          ExtendClientAreaToDecorationsHint="Đúng" ExtendClientAreaChromeHints="Không có Chrome" ExtendClientAreaTitleBarHeightHint="-1"

                        
                      

Mở DialogBase.axaml.cs và sửa đổi mã.

                        
                          sử dụng Avalonia; sử dụng Avalonia.Controls; sử dụng Avalonia.Interactivity; sử dụng Avalonia.Markup.Xaml; không gian tên Dialog.Views; lớp một phần công khai DialogBase : Window { công khai DialogBase() { InitializeComponent(); #if DEBUG this.AttachDevTools(); #endif } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } private void Close_OnClick(object? sender, RoutedEventArgs e) { Close(); } }

                        
                      

tạo nên Đối thoại Quản lý lớp học

Tạo một lớp Quản lý hộp thoại để quản lý Hộp thoại Tạo DialogManager.cs và thêm mã sau đây.

                        
                          sử dụng System; sử dụng System.Collections.Generic; sử dụng System.Threading.Tasks; sử dụng Avalonia.Controls; sử dụng Avalonia.Threading; không gian tên Dialog.Views; = new(); public static void Show(Loại hộp thoại, nội dung chuỗi, chiều cao int = 100, int width = 200, int Timing = 3000) { DialogBase Dialog; // Để ngăn chặn sự tương tranh, bạn có thể tự sửa đổi khóa (_dialogBases) { if (_dialogBases.Remove(type, out var voiceBase)) { try { voiceBase.Close() ; } bắt { } } hộp thoại = DialogBase mới { Chiều cao = chiều cao, Chiều rộng = chiều rộng, WindowStartupLocation = WindowStartupLocation.Manual // Không thể sửa đổi vị trí cửa sổ nếu nó không được đặt}; if (timing > 0) { // Cửa sổ bật lên bị đóng thường xuyên_ = Task.Run(async () => { đang chờ Task.Delay (timing); // Đầu tiên Xóa và lấy giá trị đã xóa if (_dialogBases.Remove(type, out var voiceBase)) { // Các thành phần vận hành yêu cầu sử dụng ui thread_ = Dispatcher.UIThread.InvokeAsync(() => { try { // Đóng thành phần cửa sổ bật lên voiceBase.Close(); } // Nó có thể đã bị đóng nên có thể xảy ra ngoại lệ Catch { } } }); ; } // Thêm vào từ điển_dialogBases.TryAdd(type, hộp thoại); } // Lấy màn hình hiện tại varbounds = hộp thoại.Screens.ScreenFromVisual(dialog).Bounds; // offset int skewing = 20; // chiều cao thanh tác vụ của cửa sổ int taskbar = 50; switch (type) { case DialogType.topLeft: x = skewing ; lệch; ngắt; y = xiên; ngắt; (bounds.Height - voice.Height) - thanh tác vụ - skewing; case DialogType.centerLower: x = (int)((bounds.Width - hộp thoại.Width) / 2); y = (int)(bounds.Height - hộp thoại.Height) - thanh tác vụ - xiên; ); y = (int)(bounds.Height - hộp thoại.Height) - thanh tác vụ - xiên mặc định: ném mới; ArgumentOutOfRangeException(nameof(type), type, null); } // Đặt vị trí của hộp thoại cửa sổ bật lên.Position = new PixelPoint(x, y); // Lấy thành phần hiển thị nội dung và hiển thị nội dung var contentBox = hộp thoại.Tìm ("Nội dung"); contentBox.Text = nội dung hộp thoại.Show() } } public enum DialogType { ///  /// Trên cùng bên trái ///  topLeft, ///  /// Giữa và trên cùng ///  topCenter, ///  /// Trên cùng bên phải ///  topRight, ///  /// Phía dưới bên trái ///  bên tráiLower, ///  /// Chính giữa và phía dưới ///  centerLower, ///  /// phía dưới bên phải ///  bên phảiLower }

                        
                      

Thành phần cửa sổ bật lên đã được hoàn thành.

Sử dụng cơ bản cửa sổ bật lên

Mở tệp MainWindow.axaml và sửa đổi mã.

                        
                                  


                        
                      

Mở MainWindow.axaml.cs và sửa đổi mã liên quan.

                        
                          sử dụng Avalonia.Controls; sử dụng Avalonia.Interactivity; không gian tên Dialog.Views; public một phần lớp MainWindow : Window { public MainWindow() { LaunchizeComponent() } // Xác định giá trị bắt đầu của phép liệt kê riêng tư int i = 0; ( object? sender, RoutedEventArgs e) { // Cửa sổ mới bật lên DialogManager.Show((DialogType)i++, "Nội dung cửa sổ bật lên:" + i); // Gán lại nếu vượt quá giá trị liệt kê if (i == 6) { i = 0;

                        
                      

Hiệu ứng thực thi

Chia sẻ từ mã thông báo.

Cuối cùng, bài viết về cửa sổ bật lên tùy chỉnh của avalonia kết thúc tại đây. Nếu bạn muốn biết thêm về cửa sổ bật lên tùy chỉnh của avalonia, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai. .

25 4 0
tôi là một con chim nhỏ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress