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)
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.