Как вы можете выровнять фон холста в WPF?
Я установил фон холста для изображения логотипа компании. Я хотел бы, чтобы это изображение было выровнено по правому нижнему углу холста.
Возможно ли это сделать или потребуется добавить изображение на холст в детстве? Это не будет работать с этой программой, так как все дочерние элементы canvas обрабатываются по-разному.
Благодарю вас
4 ответа
Будет ли это работать? (В любом случае, это сработало для меня.)
<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>
AFAIK WPF Canvas требует, чтобы дочерние элементы пользовательского интерфейса располагались с использованием абсолютных координат. Для достижения эффекта привязки к правому нижнему краю, я думаю, вам нужно обработать событие изменения размера окна, пересчитать и применить координаты 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>