2012-02-08 46 views
6

Trong biểu mẫu cửa sổ .net của tôi (Tôi đang sử dụng XP Pro SP3 và VS 2010), tôi đã tạo một biểu mẫu. Trong phần mềm menustrip là một số mục menu, mỗi mục có một trình đơn thả xuống. Các mục menu trong trình đơn thả xuống đều có biểu tượng với một số văn bản. Tôi muốn làm cho menu nhỏ gọn hơn bằng cách giảm không gian ngang giữa biểu tượng và văn bản. (Tôi đã thêm một mũi tên màu đỏ vào ảnh để hiển thị không gian tôi đang nói).Giảm khoảng trống giữa biểu tượng của mục menu và văn bản của nó

enter image description here

Cho đến nay, tôi đã thiết lập các đệm của tất cả các menuitems 0, nhưng điều này dường như chỉ ảnh hưởng đến khoảng cách thẳng đứng giữa một mục menu và tiếp theo.

Tôi muốn sử dụng hệ thốngrendermode cho menustrip (mặc dù vấn đề vẫn không có vấn đề gì rendermode tôi sử dụng. Các biểu tượng trong menu là 16x16, và có tài sản sizetofit.

Funny điều là khoảng cách này rất giống với cách tôi muốn nó trong menustrip - biểu tượng nằm ngay bên cạnh văn bản

Điều này sẽ loại bỏ lề hình ảnh hoàn toàn, nhưng nó cũng loại bỏ hình ảnh, tôi chỉ muốn thay đổi chiều rộng của lề hình ảnh.

For Each menuItem As ToolStripMenuItem In menu_main.Items 
     DirectCast(menuItem.DropDown, ToolStripDropDownMenu).ShowImageMargin = False 
    Next 

Tôi có thể làm gì ở đây?

+0

Cũng giống như một sang một bên, nó không phải là một ý tưởng rất tốt để tùy chỉnh thiết lập thành ngữ giao diện người dùng theo cách này. Tôi biết rằng bản thân Microsoft luôn làm việc đó nhưng tốt hơn hết là tuân thủ các tiêu chuẩn giao diện người dùng của hệ điều hành trong những liên quan này. –

+0

@Konrad Rudolph Nói chung, tôi đồng ý với bạn. Trong thực tế, tôi thực sự thích giao diện XP của tôi cho các menu, và thay vì để nó một mình, nhưng menu mà VS nói với tôi là bản vẽ của hệ thống không giống như các menu thả xuống của các chương trình khác. Có gần một phần tư không gian giữa biểu tượng và văn bản. Nó không giống như bất cứ nơi nào khác ngoại trừ văn phòng microsoft. Khoảng cách nên là khoảng mười sáu, hoặc nhiều nhất là thứ tám. – bgmCoder

+0

Ah, tôi nhớ: Có vẻ như đây là khu vực dành cho các hộp kiểm (có thể tồn tại trong các menu). Bạn đã đảm bảo rằng không có tùy chọn tắt hành vi này, thay vì sửa đổi bản vẽ? Tôi đã không làm việc với .NET trong một thời gian, tôi không thể nhớ được điều này có tồn tại hay không. –

Trả lời

2

Vì vậy, điều này là gian lận, và có lẽ sẽ không trông sạch như bạn muốn, nhưng tôi đã có thể làm điều đó bằng cách làm cho hình ảnh có văn bản và sau đó thiết lập các thuộc tính sau trong nhà thiết kế cho menu:

DisplayStyle = Image

ImageScaling = None

enter image description here

+0

Tôi đã cung cấp cho bạn +1 của tôi cho sự sáng tạo. Đó là một giải pháp thực sự! Tuy nhiên, nó loại bỏ khả năng cho văn bản động trong các mục menu, và nó làm cho nó khó khăn để tái sử dụng các biểu tượng cho các mục đích khác. Không hoàn toàn là tôi đã hy vọng, nhưng một giải pháp đáng ngưỡng mộ. – bgmCoder

Các vấn đề liên quan