我有一个显示包含图像和3个按钮的网格的程序。这些按钮在Visual Studio设计器中已经调整大小以适合单独的圆圈(直径约为1/4“)。当我运行程序时,每个按钮都向下移动,向右移动大约1/2的宽度。如果我为每个按钮添加一个明确的宽度和高度,我可以保持大小相同但按钮仍然略微向右移动,甚至可能略微下降。
我的猜测是,它与Windows如何显示图像以适应屏幕以及此缩放/定位尚未应用于按钮有关。如果是这样,我不知道如何纠正这个问题。
非常感谢任何关于如何纠正这个问题的想法。
克里斯
我的XAML代码:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Height}"
Width="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Width}"
WindowStartupLocation="CenterScreen"
Background="CornflowerBlue"
ResizeMode="CanMinimize"
>
<Window.Resources>
<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Black"/>
<Setter Property="Opacity" Value="1"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid Name="grid1">
<Image Name="image" Source="D:\CEP\Image1.jpg" Stretch="Uniform">
</Image>
<Button Margin="494,0,1155,801" Click="button_407_Click"></Button>
<Button Margin="339,107,1310,856" />
<Button Margin="401,102,1248,860" />
</Grid>
答案 0 :(得分:0)
将“图像”的“拉伸”属性设置为“无”以防止图像大小调整。
您已通过设置边距来定位按钮。一旦窗口调整大小,它们的位置和大小就会改变。
将Canvas添加到网格中,并使用绝对定位将图像和按钮放在画布上(Canvas.Left =“...”Canvas.Top =“...”
如果在执行此操作后,您不喜欢结果,因为您仍然希望调整图像大小并同步移动按钮,则可以将Canvas包装在ViewBox中以使其缩放。
修改强>
<Grid>
<Viewbox>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Source="Images\wp_1680.jpg" Width="300" Height="200"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Canvas Width="300" Height="200"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Canvas.Top="25" Canvas.Left="50" Content="OK"/>
<Button Canvas.Top="125" Canvas.Left="150" Content="Cancel"/>
</Canvas>
</Grid>
</Viewbox>
</Grid>
此解决方案包括通过Viewbox进行的良好扩展,但也可以将其删除。
请整理所有帖子。如果您想对我的回答说些什么,请将其添加为我的回答,如果您想添加问题,请编辑问题。