Я не могу себе представить, как именно выглядит проблема, но вот одно из предложений - попробуйте установить для SnapsToDevicePixels значение true для соответствующей кнопки или, возможно, всего окна.Проблема может быть связана с тем, что WPF по умолчанию хочет выполнять независимый от устройства рендеринг.Это приводит к тому, что края элемента управления немного «кровоточат» по соседним пикселям из-за неправильного выравнивания ширины / высоты и DPI / пикселей.Если установить для SnapsToDevicePixels значение true, WPF будет отображаться точно для пикселей устройства, и эффект «кровотечения» исчезнет ...
РЕДАКТИРОВАТЬ: я опробовал предоставленный вами код, и я предполагаю, что «белый фрагмент»белые (иш) пиксели по углам?Что ж, проблема здесь связана с сглаживанием, которое также осветляет пиксели внутри углов.Поскольку вы используете темный тон, эти светлые пиксели выделяются, а кнопка выглядит не очень хорошо.
Я не уверен, что это можно считать ошибкой.Вы могли бы подумать, что сглаживание сделает магию для пикселей, которые составляют угол и за пределами угла, но каждый пиксель внутри угла должен быть окрашен цветом фона.Опять же, это может быть задумано, что сглаживание должно мешать пикселям внутри угла, иначе вы не получите требуемый эффект ...
В любом случае есть два обходных пути:
1) Присвойте границе следующее свойство RenderOptions.EdgeMode = "Aliased".Это отключит сглаживание (0% пикселей белого цвета), но элемент управления будет выглядеть очень неровно.
2) Используйте две границы.Внешняя граница будет определена так же, как вы определили текущую границу, установите только для свойства Background значение DarkBlue.Затем для этой внешней границы создайте другую границу как дочерний элемент.Для этой внутренней границы установите CornerRadius = 7, RenderOptions.EdgeMode = "Aliased" и определите фон с помощью LinearGradientBrush.Внутренняя граница будет содержать ContentPresenter.Код будет выглядеть так:
<Border CornerRadius=8 Background=DarkBlue>
<Border CornerRadius=7 RenderOptions.EdgeMode="Aliased">
<Border.Background>
...
</Border.Background>
<ContentPresenter />
</Border>
</Border>
Он не избавится от белых пикселей на 100%, но я думаю, что это лучший компромисс.Невооруженным глазом я не мог видеть никаких белых пикселей, но когда я увеличил масштаб с помощью инструмента лупы, я насчитал только 2 пикселя на угол и только в нижних углах.До этого было что-то вроде 8 пикселей на угол.По крайней мере, внешняя граница все еще сглажена, и элемент управления не выглядит неровным.
BevelBitmapEffect не имеет никакого значения для внешнего вида элемента управления, поэтому я просто опустил его.