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.
There should be an easy method to add/override the shadow of a RadWindow. Either via XAML attributes or code behind.
It would probably be good to allow the override of BlurRadius, Direction, and ShadowDepth.<telerik:RadWindow x:Class="MyRadWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Header="Settings" WindowStartupLocation="CenterOwner" SizeToContent="True" ResizeMode="NoResize" MinWidth="500" MaxWidth="900" DropShadowOverride="True" DropShadowOverrideBlurRadius="10" DropShadowOverrideDirection"-90", DropShadowOverrideDepth="3" DropShadowOverrideColor="White">
<Grid>
<!-- UI code -->
</Grid>
</telerik:RadWindow>
Provide out of box text wrapping in predefined dialogs. All Windows messageboxes from Win95 have this possibility. Telerik in 2018 does not have this possibility, except through additional templates and additional code. Why to buy
As an example Windows 10 OS Window gets different Opacity for its Title and Buttons when Inactive (open two Window-s and make them appear one behind the other -- the one in the background of the active window is inactive). Our Office2016 and Office2016 Touch themes are inspired by Windows 10 OS as we officially stated so we might mind adding this visual appearance on our side for RadWindow.
The default Window control exposes an TaskbarItemInfo (https://msdn.microsoft.com/en-us/library/system.windows.window.taskbariteminfo%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) which is useful for manipulating the taskbar item of the Window instance.
Available in the 2016 Q1 SP1 Release.
Available in LIB version 2015.3.1012, it will be also available in the 2015 Q3 SP.
Property for example.
RadWindow.Confirm default button is OK, in order to change that presently we have to extract and modify styles, set FocusManager.FocusedElement binding to Cancel and set the ContentStyle property in code. It would be much more user friendly if this could be controlled by a simple property.
When creating themed applications using RadControls, the standard Windows MessageBox control looks out of place. With that in mind, the predefined RadWindows (Alert and Confirm) seem to be natural replacements for a typical MessageBox. However, when these dialogs open, they are silent That is, they don't play any error, warning, or question sounds like the standard MessageBox - which makes them seem "strange" when used as a replacement. Adding sounds to (for instance) the Alert window is fairly simple and can be accomplished like this: RadWindow.Alert(new DialogParameters() { Content = new System.Windows.Controls.TextBlock { Text = ex.Message, Width = 250, TextWrapping = TextWrapping.Wrap }, Header = "Update Error", Opened = (alertDialog, eventArgs) => System.Media.SystemSounds.Exclamation.Play() }); Though, it'd be nice if the ability to play a sound was built-in. I'd suggest that the DialogParameters class used to customize the predefined dialogs be extended to support a SystemSound member of type System.Media.SystemSounds which, if defined, would play the specified sound when the dialog opens.
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)
The property is present, but it is not implemented.