WPF 通过宽高比调整 UserControl 的大小

2024-06-24

我有一个 UserControl,并且该 UserControl 必须根据宽高比调整大小。 这意味着:宽度:高度= 2:1。 目前我正在使用这段代码:

    protected override Size ArrangeOverride(Size arrangeBounds)
    {
        if (ActualWidth == 0 || ActualHeight == 0) return arrangeBounds;
        base.ArrangeOverride(arrangeBounds);
        double ratio = 2;

        if (Parent != null)
        {
            var size = new Size(arrangeBounds.Height * ratio, arrangeBounds.Height);

            double containerWidth = ((FrameworkElement)Parent).ActualWidth;
            if (containerWidth < size.Width)
            {
                double newHeight = arrangeBounds.Height * (containerWidth / size.Width);
                canvas.Width = newHeight * ratio;
                canvas.Height = newHeight;
            }
            else
            {
                canvas.Width = size.Height * ratio;
                canvas.Height = size.Height;
            }
        }

        return arrangeBounds;
    }

但这并没有真正发挥作用。这意味着它有效,但并非每次都有效。如果我最大。窗口有时不会调整大小,因此如果控件调整大小,则有点“随机”。因此,如果有人有更好的解决方案,那就太好了。


最直接的解决方案是通过值转换器将高度直接绑定到宽度。

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

WPF 通过宽高比调整 UserControl 的大小 的相关文章

  • 获取登录用户的 AppData\Local 文件夹

    我目前正在使用 Environment GetFolderPath Environment SpecialFolder LocalApplicationData 检索当前用户的AppData Local小路 该程序需要提升的权限 并且在标准
  • WPF 通过宽高比调整 UserControl 的大小

    我有一个 UserControl 并且该 UserControl 必须根据宽高比调整大小 这意味着 宽度 高度 2 1 目前我正在使用这段代码 protected override Size ArrangeOverride Size arr
  • 如何为 WPF 工具包图表提供样式

    我在 WPF 应用程序中使用 WPF Toolkit Chart 和 PieChart 我想将饼图图片中的默认白色背景更改为透明 如何提供风格来实现这一目标 WPF 旨在允许您通过 XAML 设置控件样式 不是代码 还可以通过样式使饼图中的
  • Windows 更新 KB4040972/73 导致 WPF 类出现黑色图像

    我有一个依赖于深度缩放图像 从 PNG 转换为各种比例的 JPG 金字塔 的应用程序 我们使用 DeepZoomTools dll 来实现 这依赖于PresentationCore dll 多年来一直运行良好 推出 KB4040972 和
  • 如何隐藏标签栏并在屏幕上显示完整的表格视图?

    在我的应用程序的实现中 我有一个带有 5 个不同选项卡的选项卡栏控制器 通过以下代码隐藏标签栏后 void hideTabBar for UIView view in self tabController view subviews if
  • 快速变化的集合 MVVM WPF - 高 CPU 使用率和 UI 几乎冻结

    我正在开发一个带有数据网格的应用程序 它显示某些正在运行的 Windows 进程 在我的示例 Chrome 进程中 当选中复选框时 数据网格会加载进程 要求 显示每个进程的名称 内存使用情况 私有工作集 的 实时 信息 就像在 Window
  • 良好的 WPF 或 silverlight windows 小工具示例

    有人有 WPF 或 silverlight windows 小工具的好例子吗 诺兰多02 您好 我在网上看到了一些侧边栏小工具演示和教程 我将在这里列出它们以供您审查 希望其中一些能引起您的注意 并为您的努力提供帮助 WPF http ww
  • 如何用ListBox制作自定义控件?

    我想用自定义的项目模板制作水平ListBox 所以我制作了它的基本模板 但是 我找不到将 事物 绑定到 WPF XAML 的示例 尤其是在 ListBox 填充了自定义项的情况下 我只是想动态添加 删除列表框中的项目 其中包含图像 标签 组
  • 获取上下文菜单的控制

    我有一个如下所示的上下文菜单 A 1 2 3 选择 1 2 或 3 后 我需要访问调用上下文菜单的对象 意思是如果这是 textbox1 的上下文菜单 那么我需要访问该对象 我该怎么做 忘了说了 这是一个WPF应用程序 所以我使用 Syst
  • 我如何在 WPF 中模仿这种行为?

    我对 WPF 和 C 开发相当陌生 我正在制作这个应用程序 我不知道是否有人熟悉 VOIP App Discord 但他们有一个我非常喜欢的特定行为 并且想尝试使用 WPF 创建类似的风格 当您在 Discord 上添加服务器时 单击一个按
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • 如何隐藏 WPF 控件的一部分

    是否可以隐藏 WPF 控件的一部分 NET 4 有一个 DatePicker 它呈现 4 个部分 根据MSDN http msdn microsoft com en us library cc278067 v vs 95 aspx 是否可以
  • 如何从“埃尔米特”曲线转换为贝塞尔曲线?

    正如主题所述 如何从 Hermite 曲线转换为 Bezier 曲线 具体来说 我正在寻找一种方法来转换 Microsoft XNA Framework 的 Curve 类 使用 Hermite 插值 以便使用 Windows Presen
  • 关闭时发送到托盘

    单击关闭按钮时如何将最小化的窗口发送到托盘 另外 如何在应用程序启动时在托盘中显示图标 WinForm 一种方法是在窗口的 F ormClosing 事件中设置 FormClosingEventArgs 的 Cancel 属性 然后最小化到
  • 通过绑定启用 TabItem

    我想在不同页面是 TabItem 的应用程序中使用 MVVM 为此 我使用视图模型 项目 的可观察集合并将其绑定到选项卡控件 ItemSource 对于每个视图模型 我创建了一个单独的数据模板来呈现正确的视图 如下所示
  • XPS 文件中打印的重复图像

    首先 我想指出 我已将此作为错误向 Microsoft 提出 但他们目前不愿意修复它 我正在寻找一种解决方法或更好的方法来实现我想要做的事情 因为我们的客户认为这是一个相当重要的问题 The code 主窗口 xaml
  • 根据文本调整 JButton 和其他组件的大小

    如何在运行时调整 JButton 的大小 使其适应由setSize 我已经进行了一些搜索 这是我迄今为止提出的代码 这可以转化为实用方法吗 FontMetrics metrics getFontMetrics font int width
  • php imagecopyresampled 添加黑色背景

    我有一个调整图像大小的脚本 它采用 130x81 图像并将其添加到 130x130 图像中 当 imagecopyresampled 函数运行时 它会在剩余的空间中添加黑色背景 即使基本图像是白色的 下面的代码 我真的很感激一些帮助 The
  • 如何使元素在 XAML 中引用 StaticResource Storyboard(而不是引用该元素的 Storyboard)

    我正在阅读 MSDN 动画教程 它描述了将故事板应用到元素的以下步骤 创建故事板 使用以下命令指定其目标元素名称TargetName财产 指定目标属性 添加事件触发器来启动动画 我看到一个概念性问题 从中衍生出我的困难 那就是 我在故事板和
  • 将 WPF 属性数据绑定到变量

    我有一个 WPF 4 和 VB net 2010 中的项目 我想将媒体元素的音量属性绑定到另一个模块中的变量 请注意 变量的数据类型正确 因此无需转换 我该怎么做呢 首先 确保您的后台代码实现了 INotifyPropertyChanged

随机推荐

  • 用另一个列表替换列表的扩展切片

    我有一个清单s如下所示 s list range 1 11 我正在更换slice of s 使用下面的代码 s 1 4 0 0 0 0 print s Output 1 0 0 0 0 5 6 7 8 9 10 但是 当尝试分配相同的列表时
  • django 中 _unicode() 方法出现问题

    我正在添加一个unicode 方法到我的模型 但是当在交互中显示所有对象时它不起作用 import datetime from django db import models from django utils import timezon
  • ValueError:行索引为 65536,.xls 格式不允许

    目前 我正在尝试使用 xlwt 编辑现有的 Excel 文件 我不想直接在excel上编辑 所以我先复制一份 new wb xlutils copy file location 在此副本中 我使用 xlwt 模块将新列写入新复制的 Exce
  • 搁置在 TortoiseSVN 中?

    我已经在当前公司从 TFS 迁移到 SVN TortoiseSVN 我真的很怀念TFS的 搁置 功能 我读过各种关于如何使用 SVN 搁置 的文章 但我没有读过任何可以为 搁置 工作提供非常简单体验的文章 理想情况下 我希望将额外的项目添加
  • 验证 Instagram 时不会重定向到回调 URL

    我的 Instagram 服务器端登录流程遇到问题 我在用 passport js passport instagram 在我的 Node js 服务器的域中example com 一个简单的WebView在我的安卓客户端中 问题是有时输入
  • 如何使用 Gradle API 获取 Android Studio 主 SourceSet?

    我正在为 Android Studio 开发一个 gradle 插件 这是我的问题如何使用 Gradle API 获取 Android Studio 主 SourceSet 我想用 java 源目录做一些复制工作 在问这个问题之前 我发现了
  • iTunes Connect 提交审核 - 无法保存您的应用程序信息。再试一次

    当我尝试提交应用程序的新版本以供审核时 我收到此错误消息 虽然我已经看到有关此错误消息的其他线程 但所提供的解决方案对我不起作用 而且我还没有看到任何提及我收到的实际服务器错误消息 iTunes Connect 响应以下错误消息 Error
  • 我如何知道在 python 中使用 OpenCV 检测到的白色区域的位置?

    例如 在这段代码中 我过滤了视频源以显示白色区域 我如何知道他们的位置 坐标 x y import cv2 import numpy as np cap cv2 VideoCapture 0 while 1 frame cap read h
  • 如何根据特定行中的值对 numpy 数组进行排序?

    我想知道如何根据其中一列中的值对整个数组进行排序 I have array 5 2 8 2 4 and array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
  • 如何简洁地写一个 || b 其中 a 和 b 是可选值?

    我对任何语言的答案都很满意 但我最终想要 Java 的答案 Java 8 没问题 不限于 Java 8 我尝试修复标签 如果我有两个Optional
  • 使用 HTTP 访问数据库对象

    是否可以使用 HTTP 访问数据库对象SQL Server 2012它的完成方式是使用SQL Server 2000 我提到了下面的文章 但它是关于SQL Server 2000 使用 HTTP 访问数据库对象 http technet m
  • Python:如何模拟kafka主题进行单元测试?

    我们有一个消息调度程序 它会根据消息属性生成一个哈希键 然后将其与该键一起放入 Kafka 主题队列中 这样做是为了重复数据删除的目的 但是 我不确定如何在不实际设置本地集群并检查其是否按预期执行的情况下测试此重复数据删除 在线搜索用于模拟
  • 从 AWS CLI 工具获取 AWS 帐号的快速方法?

    寻找一种快速获取我的帐号的方法 我最初想到使用aws iam get account authorization details max items 1但这样做有几个问题 有没有办法做到这一点 可能不会跨帐户来源 您可以从以下位置获取帐号安
  • IE 和 Socket.io 兼容性

    我做了一些聊天示例 如下所示 http psismike com 2011 09 node js and socket io chat tutorial http psitsmike com 2011 09 node js and sock
  • 如果我的 php 不符合条件,如何使它不将表单数据发送到 mysql?

    我试图让我的网站在表单字段为空时显示错误消息 如果有 我想我确实这样做了 但它不会输出任何错误消息 它只是将空行添加到我的数据库列中 我应该补充一点 这是一种混合和匹配 我确实为此付出了努力 但我没有从头开始或任何东西 无论如何 我们非常感
  • 调用 [locationManager requestWhenInUseAuthorization] 时,警报视图会自行消失;

    我正在打电话 locationManager requestWhenInUseAuthorization 在显示MKMapView showsUserLocation YES 首先这看起来很奇怪 苹果应该处理这个问题MKMapView自动
  • 电影剪辑结束的 Flash 事件侦听器?

    任何人都可以建议影片剪辑动画结束时触发功能的最佳方式吗 我认为事件监听器可以处理这个问题 但不确定最好的方法 谢谢 保罗 有几种方法可以解决这个问题 只需从动画的最后一帧调用该函数即可 在函数的最后一帧上调度一个事件并在其他地方监听它 长而
  • C# API 返回字符串而不是 XML 包装的字符串

    我正在使用 ApiController 但无法调用返回 XML 以外的任何内容 public class GuideController ApiController AcceptVerbs GET HttpGet public string
  • 对齐类型并按值传递参数

    按值传递对齐类型或具有对齐类型的结构不适用于某些实现 这会破坏 STL 容器 因为某些方法 例如 resize 按值获取参数 我使用 Visual Studio 2008 运行了一些测试 但不完全确定按值传递何时以及如何失败 我主要关心的是
  • WPF 通过宽高比调整 UserControl 的大小

    我有一个 UserControl 并且该 UserControl 必须根据宽高比调整大小 这意味着 宽度 高度 2 1 目前我正在使用这段代码 protected override Size ArrangeOverride Size arr