我為我的按鈕創建了一個樣式:
<Style TargetType="Button">
<Setter Property="Height" Value="20"></Setter>
<Setter Property="Width" Value="100"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Border.Style>
<Style>
<Setter Property="Border.Background">
<Setter.Value>
<ImageBrush ImageSource="/myTool.GUI;component/Resources/Button not clicked.png"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Border.IsMouseOver" Value="True">
<Setter Property="Border.Background">
<Setter.Value>
<ImageBrush ImageSource="/myTool.GUI;component/Resources/Button clicked.png"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<ContentPresenter Content="{TemplateBinding Button.Content}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果我在我的 Windows 中使用知道一個按鈕,它在設計器中看起來不錯:

但是如果我啟動我的應用程式,它看起來像這樣:

為什么左右兩邊被截斷了?
原圖:

uj5u.com熱心網友回復:
對我來說,是關于原始影像,它不適合所需的尺寸(例如 20x20px)。如果我嘗試使用 Paint 或其他應用程式調整它的大小,結果與 WPF 渲染相同。
特別是,我認為它的邊框太細了。你有一個 341px 寬的影像,只有 7px 厚的邊框。這是一個 7 / 341 = 0.0205 的比率。
現在,當您縮小到 20 像素寬時,邊框變為 20 * 0.0205 = 0.4 像素。所以,不到一個像素!那樣不能得到一個體面的結果。
話雖如此,您可以嘗試通過調整RenderingOptions屬性來改善結果。例如,您可以嘗試以下操作:
<ImageBrush ImageSource="..."
RenderOptions.BitmapScalingMode="HighQuality"
RenderOptions.EdgeMode="Aliased"
/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492871.html
