Включение стандартной тени у окна с переопределённым шаблоном

179
14 июля 2017, 02:10

Стиль:

<Style TargetType="{x:Type Window}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="ResizeMode" Value="NoResize"/>
    <Setter Property="WindowChrome.WindowChrome">
        <Setter.Value>
            <WindowChrome NonClientFrameEdges="None" CornerRadius="0" GlassFrameThickness="0" ResizeBorderThickness="0" CaptionHeight="30"/>
        </Setter.Value>
    </Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Border BorderThickness="1" BorderBrush="DarkGray" Background="#F0F0F0">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <!-- TitleBar -->
                        <Border Background="White" Grid.Row="0"/>
                        <!-- Window content -->
                        <AdornerDecorator Grid.Row="1">
                            <ContentPresenter/>
                        </AdornerDecorator>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Вопрос

Каким образом для моего стилизированного окна я могу включить стандартную тень:

Вопрос, конечно, легко решается, если установить WindowChrome.GlassFrameThickness в -1, но это имеет "побочный эффект": ухудшение качества шрифта.

Для меня такой результат неудовлетворителен ): Поэтому, требуется альтернативное решение включения стандартной тени (не брезгуем и WinApi).

P.S.: У вас могут возникнуть предложения по поводу улучшения качества конкретно шрифта, но сразу скажу, что это всё бесполезно. Вы можете сколько угодно играться с TextOptions, SnapsToDevicePixels, UseLayoutRounding и т.д. и т.п. (кстати говоря, текст приведённый на картинке уже Display), и всё равно ничего из этого не выйдет! Проблема не в шрифте, а в настройке окна.

UDP: Не нужно так же предлагать WindowStyle установить в None и налепить тень внутри шаблона. Это совсем другое. Я говорю именно о стандартной тени. WindowsStyle не должен меняться!

READ ALSO
Ошибка в реализации INotifyPropertyChanged

Ошибка в реализации INotifyPropertyChanged

Есть класс ViewModel который реализует INPCЕсть публичное свойство TextToSend к которому биндится текстбокс

175
DataGrid в качестве RowDetailsTemplate

DataGrid в качестве RowDetailsTemplate

Есть DataGrid, при выборе строки которого выпадает RowDetailsTemplate, в DataTemplate указан еще один DataGridСуть в том что грид внутри DataTemplate привязан к ObservableCollection...

163
Файл конфигурации в .net core

Файл конфигурации в .net core

Подскажите, как вnet core создавать и использовать файл кофигурации (то что в

233