本人初学WPF,现在编写了一个UserControl,如何让这个控件自适应加载窗体的宽度和高度适应不同分辨率显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本人初学WPF,现在编写了一个UserControl,如何让这个控件自适应加载窗体的宽度和高度适应不同分辨率显示相关的知识,希望对你有一定的参考价值。

<Grid Background="#FF444444" MaxHeight="900" SnapsToDevicePixels="True" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="31.99"/>
<RowDefinition Height="30.01"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Margin="0">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF8F8F8F" Offset="0.204"/>
<GradientStop Color="#FF2B2A2A" Offset="0.996"/>
</LinearGradientBrush>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="0.909*"/>
</Grid.ColumnDefinitions>
<Image x:Name="imgUserFace" Margin="0" Height="Auto" Width="Auto" Grid.Column="0" HorizontalAlignment="Stretch">
<Image.BitmapEffect>
<DropShadowBitmapEffect/>
</Image.BitmapEffect>
</Image>
<Label x:Name="WelcomeLab" Margin="4,0,-4,0" FontFamily="黑体" FontSize="16" Content="数字矿山三维地测信息系统" Grid.Column="1" Foreground="Snow"/>
<Rectangle Margin="0" RenderTransformOrigin="1,0.5" Height="15" VerticalAlignment="Bottom" Grid.Column="1">
<Rectangle.Fill>
<VisualBrush Visual="Binding ElementName=WelcomeLab"/>
</Rectangle.Fill>
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.1" Color="Transparent"/>
<GradientStop Offset="1" Color="#44000000"/>
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>
<ScaleTransform ScaleY="-1"/>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
<StackPanel Orientation="Horizontal" Background="#FFBDBDBD" Margin="0,-0.25,0,0" Grid.Row="1">
<Button x:Name="btnAddMap" Height="30" Margin="0" Style="DynamicResource ToolBarButton" Width="30" Background="#FF77EBE3" FontSize="9.333" ToolTip="加载数据" Click="btnAddMap_Click">
<Image x:Name="imgAddMap" Width="25" Height="25" Margin="0" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Top">
<Image.BitmapEffect>
<DropShadowBitmapEffect/>
</Image.BitmapEffect>
</Image>
</Button>
</StackPanel>
<StackPanel VerticalAlignment="Top" Grid.Row="2" Height="0"/>

</Grid>
我去掉了width和height但是没有用啊 结果引用的对象挤成了一团,没有设置高度和宽度的话,貌似是按照对象的内容来自动填充高宽的,我如何绑定到引用这个控件的WINDOW或PAGE上,随着WINDOW或PAGE的高度宽度自动充满呢?

参考技术A
喂喂,别误导啊,wcf是wcf,wpf是wpf,winform是winform,不要混为一谈,winform都出了10几年了,winform和wpf唯一的共同点就是同为windows应用程序的解决方案,而wpf只不过是winform的新生替代物而已,而wcf则是与wpf、wf随着.netframework3.0一起发布的,只是.netframework3.0的组成部分,和winform都不靠边。
参考技术B 将其中涉及到width和height都去掉追问

我去掉了width和height但是没有用啊 结果引用的对象挤成了一团,没有设置高度和宽度的话,貌似是按照对象的内容来自动填充高宽的,我如何绑定到引用这个控件的WINDOW或PAGE上,随着WINDOW或PAGE的高度宽度自动充满呢?

追答

简单做的话你都用Grid布局即可,StackPanel布局就是挤在一起的

参考技术C 对齐方式调成两端对齐

STM32的数据手册怎么使用?本人初学者,喜欢库函数编程。不过有一麻烦,不只怎么定位自己所需要的函数。

就比如说:现在开始要配置时钟,怎么才能找到时钟函数呢?

我跟你一样新手,建议你去找《零死角玩转STM32》这本书,里面有很大的篇幅专门介绍库函数的 参考技术A 看看两本书吧,一本是《STM32权威指南》,另一本《STM32固件库》,按照标题检索文库里面很容易下载~ 参考技术B 其实你先下载一个《STM32固件库使用手册的中文翻译版》就知道怎么使用库函数了,里面有详解

以上是关于本人初学WPF,现在编写了一个UserControl,如何让这个控件自适应加载窗体的宽度和高度适应不同分辨率显示的主要内容,如果未能解决你的问题,请参考以下文章

现在都有wpf了,c++做应用还有啥优势

本人初学Java,我用eclipse编写的代码文件保存位置在哪里?

WPF DataGrid MaxWidth 设置为 100% 可用空间

C#跨平台开源项目实战(WPF/Android/IOS/Blazor)

STM32的数据手册怎么使用?本人初学者,喜欢库函数编程。不过有一麻烦,不只怎么定位自己所需要的函数。

wpf 现在textbox的默认值是8,程序运行起来,在界面上修改了并能保存修改后的默认值