在基于WPF Vb.net的窗口中,我的图像有点问题 如果图像控件不是直接位于窗口中心,边距为0,则不会在运行时显示。
以下是两张图片的XAML代码:
<Image x:Name="loaderlogo" Height="55" Margin="1825,985,40,40" Width="55" Stretch="Fill"/>
<Image x:Name="tips" Height="128" Margin="0,732,0,220" Width="1920" Stretch="Fill" Opacity="0.9"/>
两者都包含在具有一行和一列的网格内(创建新窗口时存在的默认网格)。
如果运行此代码,则不会显示这些图像,但如果我设置边距
Margin="0"
它们看起来很好,但是在控制的中心
如果边距不为零(如果我移动图像&#39;位置除了表单的中心以外的任何位置?)如何设置控件仍然会出现?
我用来获取图像文件的代码是:
UseLayoutRounding = True
Dim exepath As String = System.AppDomain.CurrentDomain.BaseDirectory
loaderlogo.Source = New BitmapImage(New Uri(exepath & "loaderlogo.png", UriKind.Absolute))
tips.Source = New BitmapImage(New Uri(exepath & "tips.png", UriKind.Absolute))
如果死中心,图像工作得很好所以我相信问题在于XAML,但我不确定在哪里。我已经改变了水平/垂直对齐,但只要边距为0,图像仍然会出现在中心。
编辑:下面是我希望控制的位置,左下角是“装载机标记”。窗户上的乐队就是“提示”。控制。
编辑2:下面是窗口的整个XAML代码:
<Window x:Class="loadingwindow" UseLayoutRounding="True"
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:applicationname"
mc:Ignorable="d"
Title="loadingwindow" Height="1080" Width="1920" AllowsTransparency="True" WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowState="Maximized" Loaded="Window_Loaded">
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="00:00:01" Storyboard.TargetProperty="Opacity" From="0" To="1" Completed="DoubleAnimation_Completed"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Grid>
<Image x:Name="loaderlogo" Height="55" Margin="1825,985,40,40" Width="55" Stretch="Fill"/>
<Image x:Name="tips" Height="128" Margin="0,732,0,220" Width="1920" Stretch="Fill" Opacity="0.9"/>
</Grid>
答案 0 :(得分:0)
大边距是定位元素的最差方式。更好的方法是使用正确的布局面板和正确的元素对齐。小边距可以在元素之间添加一些空间。
Grid
面板通常与许多RowDefinition
和ColumnDefinition
一起使用。元素放置在不同的行和列中,结果布局适应大小更改
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image x:Name="tips" Grid.Row="1" Height="128" Width="1920" Stretch="Fill" Opacity="0.9"/>
<Image x:Name="loaderlogo" Grid.Row="2" Height="55" Width="55" Margin="10"
HorizontalAlignment="Right" Stretch="Fill"/>
</Grid>