C# XAML控件在运行应用程序时更改位置
我正在尝试构建一个应用程序,它需要我将一些简单的文本放在一个固定的位置(比如说,我正在尝试模拟一个锁屏) 这在我处于设计模式时起作用,但当我运行应用程序时,C# XAML控件在运行应用程序时更改位置,c#,wpf,xaml,windows-phone-8,C#,Wpf,Xaml,Windows Phone 8,我正在尝试构建一个应用程序,它需要我将一些简单的文本放在一个固定的位置(比如说,我正在尝试模拟一个锁屏) 这在我处于设计模式时起作用,但当我运行应用程序时,TextBlock会改变位置 从前面的图片中可以看到,在设计模式下,myTextBlock覆盖了背景,但当应用程序运行时,它会移动到屏幕底部 代码非常简单,我不知道发生了什么 <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
TextBlock
会改变位置
从前面的图片中可以看到,在设计模式下,myTextBlock
覆盖了背景,但当应用程序运行时,它会移动到屏幕底部
代码非常简单,我不知道发生了什么
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
<Image Source="/bvlczww3.bmp" Stretch="UniformToFill" />
<TextBlock x:Name="StaticDateBlock" Margin="32,645.263,0,0" TextWrapping="Wrap" Height="374.737" Width="550" FontSize="113" Text="11:03 Saturday January 5" MaxWidth="540" MaxHeight="390" UseLayoutRounding="False" FontWeight="Medium" LineStackingStrategy="BlockLineHeight" LineHeight="120" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Segoe WP SemiLight"/>
</Grid>
我的代码怎么了?调整TextBlock控件的边距。。。因为当应用程序运行时,控件会改变其相对于应用程序的位置。您应该不要像这样使用边距-
Margin=“32645.263,0,0”
,XAML是作为智能放置应用程序发明的,所以您应该使用面板、网格等来对齐所需的组件,而不是使用绝对坐标。尝试面板,也许它会解决您的问题。此文本来自哪里???其他文本都已在其位置上,所有内容都来自图像,但应用程序运行时底部移动的TextBlock
除外。您在第一张图像中看不到TextBlock
,因为它的内容与图像中的tet对齐(您可以看到,在第一张图像中,日期看起来很粗体,因为文本重叠)。我已经更新了第一张图片,以显示TextBlock
将645减少到320并检查…我会尝试一下,但为什么设计窗口与实际应用程序如此不同?我的意思是,在设计窗口中,一切都是完美的,而在应用程序中,一切都是一团糟!因为每台设备都有不同的屏幕大小,为了获得更好的效果,你必须考虑屏幕分辨率的百分比。你是对的,但这里的问题是,我在设计窗口中所做的一切都不是我在应用程序运行时得到的!即使是字体大小,这是完美的设计模式,变得更大时,应用程序正在运行!SnapsToDevicePixels
选项是什么?您确定Windows Phone上有SnapsToDevicePixels
选项吗?Silverlight上有SnapsToDevicePixels
选项