【发布时间】:2023-03-08 15:05:01
【问题描述】:
我已将画布背景设置为公司徽标的图像。我希望这张图片与画布的右下角对齐。
是否可以这样做,或者是否需要将图像作为孩子添加到画布中?这不适用于此程序,因为画布的所有子项都以不同方式处理。
谢谢
【问题讨论】:
我已将画布背景设置为公司徽标的图像。我希望这张图片与画布的右下角对齐。
是否可以这样做,或者是否需要将图像作为孩子添加到画布中?这不适用于此程序,因为画布的所有子项都以不同方式处理。
谢谢
【问题讨论】:
AFAIK WPF Canvas 需要使用绝对坐标定位子 UI 元素。 为了实现右下锚定效果,我认为您需要处理窗口调整大小事件,重新计算并应用 Top,Left 坐标,以便子 Image 元素始终坚持右下角。
<Window x:Class="HelloWPF.Window1" xmlns...
Title="Window1" Height="300" Width="339">
<Canvas>
<Image Canvas.Left="195" Canvas.Top="175" Height="87" Name="image1" Stretch="Fill" Width="122" Source="dilbert2666700071126ni1.gif"/>
</Canvas>
</Window>
【讨论】:
像这样在 Grid 控件中包含画布和图像怎么样?
<Window ...>
<Grid>
<Canvas/>
<Image HorizontalAlignment="Right" VerticalAlignment="Bottom" .../>
<Grid>
</Window>
【讨论】:
这行得通吗? (无论如何,它对我有用。)
<Canvas>
<Canvas.Background>
<ImageBrush ImageSource="someimage.jpg" AlignmentX="Right"
AlignmentY="Bottom" Stretch="None" />
</Canvas.Background>
</Canvas>
【讨论】:
这是我使用画布内的边框对齐图像的解决方案。此解决方案在调整画布大小时效果很好:
<Canvas x:Name="MiCanvas" Height="250" Width="500" Background="Aqua">
<Border x:Name="MiBorderImage"
Width="{Binding ElementName=MiCanvas, Path=ActualWidth}"
Height="{Binding ElementName=MiCanvas, Path=ActualHeight}"
Background="Transparent">
<Image x:Name="MiImage" Source="/GraphicsLibrary/Logos/MiLogo.png"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Stretch="None" />
</Border>
</Canvas>
【讨论】: