WPF 自动调整元素大小

2024-01-31

当应用程序窗口调整大小时,我希望其中的元素也按比例调整大小。 那可能吗?我尝试谷歌搜索,但找不到任何与此相关的内容。 我的 XAML 代码:

<Window x:Class="app.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown">
    <Grid>
        <TabControl Name="MyTabControl">
            <TabItem Name="pradzia" Header="Pradžia" IsSelected="True">
                <Button Content="Pradžia" Height="55" Name="button1" Width="125" Click="button1_Click" />
            </TabItem>
            <TabItem Header="Vykdyti" Name="vykdyti" IsEnabled="False">
                    <Grid Button.Click="Grid_Click">
                    <Button Content="1" Height="50" HorizontalAlignment="Left" Margin="6,0,0,6" Name="button2" VerticalAlignment="Bottom" Width="125" FontSize="20" />
                        <Button Content="2" Height="50" HorizontalAlignment="Center" Name="button3" VerticalAlignment="Bottom" Width="125" FontSize="20" Margin="184,0,184,6" />
                    <Button Content="3" Height="50" HorizontalAlignment="Right" Margin="362,0,0,6" Name="button4" VerticalAlignment="Bottom" Width="125" FontSize="20" />
                        <TextBlock Height="23" HorizontalAlignment="Center" Name="textBlock1" Margin="0,15,0,0" Text="Kiek gyvūnų paveiksliuke?" VerticalAlignment="Top" FontSize="16" />
                    <Image Height="150" HorizontalAlignment="Center" Margin="0,-25,0,0" Name="mainImage" Stretch="Uniform" VerticalAlignment="Center" Width="200" />
                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Window>

您似乎使用网格而没有实际利用其主要功能:行和列
使用它们,您可以通过定义星形大小的行和列来使布局按比例分配空间。

e.g.

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*"/>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="3*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="3*"/>
        <RowDefinition Height="2*"/>
        <RowDefinition Height="3*"/>
    </Grid.RowDefinitions>
    <!-- Note that width and height are not set to make it size to the grid cell -->
    <Button Grid.Row="1" Grid.Column="1" Content="Lorem Ipsum"/>
  </Grid>
</Window>

If by 按比例调整大小您实际上指的是大小而不是分配的布局空间,然后使用Viewbox http://msdn.microsoft.com/en-us/library/system.windows.controls.viewbox.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 自动调整元素大小 的相关文章

随机推荐

  • 将测试用例连同参数和附件从 TFS 迁移到 VSTS

    我们计划将测试用例 构建定义和代码从 TFS 迁移到 VSTS 但似乎我们无法将 MTM 中存在的测试用例中的参数和附件移动到 VSTS 我们有办法完成这件事吗 很难将带有参数和附件的测试用例从 TFS 单独迁移到 VSTS 看批量迁移工作
  • 从 compojure 提供 index.html 文件

    我是 clojure 和 compojure 的新手 并尝试使用 compojure 和 Ring 来创建一个基本的 Web 应用程序 这是我的 handler clj ns gitrepos handler require compoju
  • HttpClient:无法访问响应标头

    在一个项目中 我们同时使用 Http 和 HttpClient 来获取标头参数 Http 返回标头参数 但 HttpClient 不返回 constructor private http Http private httpClient Ht
  • 适用于 IE6.0 的 HTML5

    您知道有什么方法可以将此 HTML 代码优化为 IE6 或 7 或 8 而不添加anyHTML 元素 或者 IE 正在跳过所有 HTML5 元素 如果我只想使用 CSS 格式化元素 我不想使用其他功能 document createElem
  • wpf datagrid自动展开第一组

    我有一个数据网格 其中 itemsource 绑定到具有一组的 ListCollectionView 当我填充集合时 我希望第一组自动被视为已展开 如何在 wpf 中对其进行编码 代码隐藏或 mvvm
  • 如何使用git将一个分支重置到另一个分支?

    假设我们有一个hotfixes分支是从创建的master 我们添加了承诺hotfixes 但是这些提交没有用 所以现在我们想从新的副本开始master again 为了更好地澄清 这是参考工作流程 http nvie com posts a
  • Cloud Identity Platform:IdP 发起的 SAML 流是否可行?

    Google Cloud Identity Platform 有文档 https cloud google com identity platform docs how to enable application for saml用于服务提
  • Angular 11 在 SSR @nguniversal/express-engine 上运行 ReferenceError:globalThis 未定义

    尝试跑步 angular fire在 Angular 11 上和 nguniversal express engine 苏维埃社会主义共和国 当初始化时AngularFireModule in app module ts运行命令时出现错误n
  • CPU的矩阵访问和乘法优化

    我在 java 中制作了一些内在优化的矩阵包装器 在 JNI 的帮助下 需要对此予以肯定 你能给出一些关于矩阵优化的提示吗 我要实施的是 矩阵可以表示为四组缓冲区 数组 一组用于水平访问 一组用于垂直访问 一组用于对角线访问 以及一个命令缓
  • 如何在 Eclipse 中组织 100 多个项目?

    当您拥有 5 种以上语言和 100 多个项目时 在我看来 使用一个工作区的默认设置是不可接受的 因为一个工作区会变得非常混乱 拥有一个庞大而杂乱的工作空间会降低您的工作效率 问题 当您拥有 5 种以上语言和 100 多个项目时 使用 Ecl
  • 替代 mongoDB 3.0[之前版本]中的 $strLenCP 字段

    我目前使用的是 mongo 3 0v 我需要找到聚合命令结果中每个字符串的长度 例如 db getCollection temp find key value1 key value2 key valuee2 此查询给出关键字段的长度 db
  • Python 错误 - TypeError:输入最多需要 1 个参数,得到 3 个 [重复]

    这个问题在这里已经有答案了 有人可以解释为什么我不能在目标变量中使用 your name 吗 my name Bryson my age 29 your name input What is your name your age input
  • mySQL - 使用 mysqli 应用行级锁

    使用 PHP 的 mysqli 如何应用行级锁 行级锁会阻止任何人编辑当前存在的符合您条件的行 对吗 但是他们会阻止用户插入符合您条件的行吗 Thanks 如果您想锁定特定行以防止编辑 请使用FOR UPDATE在 SELECT 查询的末尾
  • 如何用一个数组实现3个栈?

    有时 我会遇到以下面试问题 如何用一个数组实现3个堆栈 当然 任何静态分配都不是解决方案 空间 而非时间 高效 你可以 1 定义两个堆栈 从数组端点开始并沿相反方向增长 2 将第三个堆栈定义为从中间开始并向您想要的任何方向增长 3 重新定义
  • Kotlin:我们可以在Kotlin中使用EventBus(GreenRobot)的@Subscribe吗?

    我的 onEvent 在如下片段中 在我的 Kotlin 函数中捕获活动的身份验证 但是 我无法触发 onEvent Subscribe fun onEvent event AuthenticationEvent if event isAu
  • Object.GetHashCode() 的实现

    我正在阅读有效的 C https rads stackoverflow com amzn click com 0321658701并且有一条评论关于Object GetHashCode 我不明白 Object GetHashCode 使用内
  • 帆升起时出现咕噜声错误

    我在帆升降机上遇到此错误 风帆版本 v0 10 0 rc11 error Grunt module js 340 throw err Error Cannot find module home mandeep freelance hello
  • Android 联系信息更新是否有意?

    我可以通过使用 putExtra 将信息作为额外数据传递来使用 Intent 创建新联系人 是否可以使用信息创建 Intent 如果联系人已在电话簿中 它将使用新信息进行更新 实际上 您可以使用意图通过 ContactsContract 创
  • MVC 3 客户端比较验证

    这里发生了一些奇怪的事情 我有一个基本形式 br
  • WPF 自动调整元素大小

    当应用程序窗口调整大小时 我希望其中的元素也按比例调整大小 那可能吗 我尝试谷歌搜索 但找不到任何与此相关的内容 我的 XAML 代码