Declined
Last Updated: 10 Aug 2021 12:57 by ADMIN
Created by: Simon
Comments: 3
Category: Window
Type: Feature Request
0

Hi,

our company is slowly rolling out high-DPI laptops to our users. On such devices, Windows automatically enables DPI scaling, using a value of 125% or 150%, depending on the screen's resolution. In combination with an external (unscaled) monitor, this causes our application, to appear blurry on the scaled screen.

Windows has built-in functionality to reduce the blurring, however, this only works on the main screen. If you connect a secondary screen and set that as your main screen, the application will always appear blurry on the laptop screen.

My understanding of the topic is that WPF is DPI aware - but on the system level. So it does not cope well with monitors that have different DPI settings. However, I found a tutorial on Microsoft Docs (https://docs.microsoft.com/en-gb/windows/win32/hidpi/declaring-managed-apps-dpi-aware?redirectedfrom=MSDN), hinting that it is possible to make WPF windows per-monitor DPI aware. Unfortunately, this workaround requires you to inherit your window class from their utility class.

Since all of our windows already inherit from RadWindow, I have no chance to include this without copying either their base class or RadWindow. Having RadWindow support per-monitor DPI awareness would be a great feature to have. Or is there already a way to support this?

 

Best Regards,

Simon Müller

Hofmann Fördertechnik GmbH

 

PS: Why does the first feature form in the feature request workflow (the one, where it first searches for similar requests) not let me select the control/area I am searching for like the one for private tickets? I almost submitted this request for the Area "All (Multiple Controls)" because of that.


Declined
Last Updated: 27 Jan 2014 15:38 by ADMIN
Created by: Larry
Comments: 1
Category: Window
Type: Feature Request
0
The default dialogs for the WPF RadWindow (Prompt, Alert, Confirm) do not seem to allow sizing of the content of the message. I have tried imbedding controls to set width and maxwidth, but I need to use a MaxWidth to prevent horizontal scrollbars. Ideally a Maxwidth parameter would be available allowing longer text message to spread out.

The code below works, but I'm restricted to a narrow dialog.

            Dim Scroller As New ScrollViewer
            Dim TextBlk As New Controls.TextBlock()
            With Scroller
                .HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled
                .VerticalScrollBarVisibility = ScrollBarVisibility.Auto
                If Owner IsNot Nothing Then
                    .MaxHeight = (WPFScreen.GetScreenFromElement(Owner).WorkingArea.Height - 100) 'Do not use entire height
                Else
                    .MaxHeight = (WPFScreen.Primary.WorkingArea.Height - 300) 'Do not use entire height
                End If

                With TextBlk
                    .Margin = New Thickness(10)
                    .TextWrapping = TextWrapping.Wrap
                    .Text = Message
                    'We seem to be stuck with a fixed width available for our text.
                    'If this is increased a horizontal scrollbar appears.
                    .MaxWidth = 230
                End With
                .Content = TextBlk                  'Put textblock in scroller                 
            End With

            Dim RadDialog As New DialogParameters
            With RadDialog
                .Content = Scroller
                .DefaultPromptResultValue = DefaultValue        'Default prompt result
                .DialogStartupLocation = DialogStartupLocation
                .Header = Header
                .IconContent = IconContent
                If ThemeName.ToLower <> "expression_dark" Then ' *NoLoc*
                    .ModalBackground = m_SPIBackgroundBrush
                End If
                .Owner = Owner
                .Closed = New EventHandler(Of WindowClosedEventArgs)(AddressOf OnPromptClosed)  'Reference handler for response
                '.ContentStyle
                '.WindowStyle            
            End With

            RadWindow.Prompt(RadDialog)