C#WPF将图像控件锚定为仅水平缩放
我在使用图像控件时遇到问题。我想将图像固定在窗口顶部,高度为9,每当我调整窗口大小时,图像将缩小/增大,但仅在水平方向上。我之所以只想水平缩放它,是因为图像应该是不透明的形状,为窗口提供了一点样式,但是.png的尺寸是24x9,所以我想将图像缩放到544x9,或者任何宽度值 我的问题是,我如何做到不失去任何质量 代码如下:C#WPF将图像控件锚定为仅水平缩放,c#,wpf,image,width,anchor,C#,Wpf,Image,Width,Anchor,我在使用图像控件时遇到问题。我想将图像固定在窗口顶部,高度为9,每当我调整窗口大小时,图像将缩小/增大,但仅在水平方向上。我之所以只想水平缩放它,是因为图像应该是不透明的形状,为窗口提供了一点样式,但是.png的尺寸是24x9,所以我想将图像缩放到544x9,或者任何宽度值 我的问题是,我如何做到不失去任何质量 代码如下: <ui:LauncherWindow x:Class="WpfApplication1.Window1" xmlns="http://schemas.m
<ui:LauncherWindow x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
xmlns:ui="clr-namespace:LauncherUI;assembly=LauncherUI"
mc:Ignorable="d"
Title="Window1" WindowStartupLocation="CenterScreen" Height="800" Width="1400" MinWidth="700">
<Grid>
<DockPanel VerticalAlignment="Top" Height="8">
<Button Margin="95,0,95,0">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border>
<TextBlock>
<TextBlock.Background>
<ImageBrush ImageSource="border_topbar.png" RenderOptions.BitmapScalingMode="HighQuality" RenderOptions.EdgeMode="Aliased"/>
</TextBlock.Background>
</TextBlock>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</DockPanel>
</Grid>
</ui:LauncherWindow>
“不丢失任何质量”?你能更具体地说明你所说的质量是什么意思吗?如果您开始使用14x9 PNG,从左到右只有14个像素。如果你试图拉伸这14个像素来填充1400个像素,它将不得不进行插值。好吧,只是形状是一个梯形,梯形的上边总是比梯形的下边长,但是当调整窗口大小时,它会不断增加,从而产生模糊。也就是所谓的“插值”。尝试用矢量图形替换图像:
例如。不需要插值就可以拉伸。你必须让你的文本块透明,然后把它放在后面,叠加在一个网格或某物中。如果一个矢量图形不能做这个工作(不知道你的图像看起来像什么,我不能确定),考虑一下一个像你所需要的那样宽的图像,让UI缩小它。你不能添加从未出现过的像素,但你可以随心所欲地扔掉旧像素。“而不会失去任何质量”?你能更具体地说明你所说的质量是什么意思吗?如果您开始使用14x9 PNG,从左到右只有14个像素。如果你试图拉伸这14个像素来填充1400个像素,它将不得不进行插值。好吧,只是形状是一个梯形,梯形的上边总是比梯形的下边长,但是当调整窗口大小时,它会不断增加,从而产生模糊。也就是所谓的“插值”。尝试用矢量图形替换图像:
例如。不需要插值就可以拉伸。你必须让你的文本块透明,然后把它放在后面,叠加在一个网格或某物中。如果一个矢量图形不能做这个工作(不知道你的图像看起来像什么,我不能确定),考虑一下一个像你所需要的那样宽的图像,让UI缩小它。你不能添加从未出现过的像素,但你可以随意丢弃旧像素。