2012-08-16 25 views
17

Trong Windows 8 RTM với VS2012 RTM tôi nhận thấy ứng dụng WPF của tôi đã cho tôi các nút radio bị biến dạng vì vậy tôi quyết định tạo một mẫu để xem tôi có đang làm gì sai không.Tại sao các nút radio WPF trên Windows 8 của tôi bị hỏng?

Dưới đây là toàn bộ XAML App:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" SizeToContent="WidthAndHeight"> 
    <Grid> 
     <StackPanel Margin="20"> 
      <RadioButton Content="Option 1" GroupName="1"/> 
      <RadioButton Content="Option 2" GroupName="2"/> 
      <RadioButton Content="Option 3" GroupName="3"/> 
     </StackPanel> 
    </Grid> 
</Window> 

Ở đây tôi đã thiết lập DPI thiết lập đến 100%, mà thực sự là KHÔNG mặc định trong Windows 8 (cũng ít nhất là cho màn hình 1920x1200 của tôi nó không) . Bạn sẽ thấy các nút radio hoàn hảo.

enter image description here

Đây là ứng dụng chính xác cùng với các thiết lập DPI ở mức 125% đó là mặc định DPI cho độ phân giải màn hình của tôi.

enter image description here

Dưới đây là 150%

enter image description here

Bạn có thể thấy các vòng tròn bên trong không trung trong vòng tròn bên ngoài và có vẻ khủng khiếp. Các ứng dụng hệ thống có nút radio là tốt - nhưng ứng dụng WPF 4.5 của tôi thì không. Một lần nữa ứng dụng mẫu này là bit RTM 100% và từ đầu theo Win 8.

Có phải tất cả đều bị hỏng hoặc có cách nào để sửa lỗi này (ngoài những người nhấn mạnh đặt 100% DPI).

Đã thực sự hy vọng Win8 đã có thể đi một chặng đường dài cho các màn hình độ phân giải cao và phát triển các vấn đề như thế này, nhưng một cái gì đó đơn giản là bị phá vỡ ra khỏi hộp :-(


Edit: nộp lỗi connect https://connect.microsoft.com/VisualStudio/feedback/details/758368/radio-button-rendering-is-incorrect-on-windows-8-with-125-dpi-scaling-set

Edit: 8/29/12:

đội WPF thời gian gần đây đã xem xét vấn đề này và sẽ không được giải quyết vấn đề này như vào thời điểm này đội đang tập trung vào các lỗi tác động đến số lượng nhà phát triển WPF cao nhất. Nếu bạn tin rằng điều này đã được giải quyết do nhầm lẫn, vui lòng kích hoạt lại lỗi này với bất kỳ chi tiết hỗ trợ cần thiết nào .

+0

Có thể không phải lỗi của Win8 - WPF thu hút tất cả các điều khiển riêng của mình, mặc dù các chủ đề mặc định thực hiện với hệ điều hành để một số yếu tố tích hợp tốt hơn. Điều này cũng có thể là một lỗi trong phiên bản .NET 4.5 (vẫn được phát hành trước) của WPF. Báo cáo nó cho Microsoft và xem họ có nghĩ rằng nó đáng giá hay không (tiếc là họ không luôn đồng ý với những người như chúng tôi về những gì đáng để sửa chữa). –

+0

Tôi nghĩ rằng OP cho biết ông đã xây dựng tất cả điều này với các bit RTM. Nếu đó là trường hợp nó là một chút đáng lo ngại. Tôi sắp sửa khôi phục máy tính của mình bằng RTM của W8 và VS - tôi hy vọng không có nhiều thứ như thế này nữa. – ZombieSheep

+0

@matthew - lời nhắc nhở tốt rằng WPF thu hút sự kiểm soát của nó. chỉ cần kiểm tra ở mức 125% trên Win7 và chúng hoàn toàn tập trung nếu hơi mờ. Tôi sẽ báo cáo ngay sau khi tôi tìm đúng nơi để làm như vậy. và như zombiesheep nói tôi đang sử dụng RTM và không mong đợi bất kỳ bản cập nhật này: -/trong một ứng dụng kinh doanh thực tế được triển khai rộng rãi tôi muốn được xấu hổ để có tàu này –

Trả lời

0

Bạn có thể thử đặt stackpanel trong một viewbox .. có lẽ

+0

Điều đó đánh bại đồ họa vector –

1

Mọi thứ trong WPF được kiểu. Trong trường hợp các kiểu hệ thống mặc định, đôi khi, theo kinh nghiệm của riêng tôi, có ít vấn đề như thế này. Một sửa chữa đơn giản, để xác nhận nó là phong cách và không phải là hệ điều hành chính nó là để restyle kiểm soát chính mình và xem nếu sửa chữa nó.

Bạn có thể tìm kiểu gốc bằng cách xem câu hỏi this. Điều này sẽ giúp bạn xây dựng lại và/hoặc khắc phục sự cố

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