- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想了解 WPF/Silverlight 布局的一般要求,以便能够实现平移和缩放(拖动和缩放)功能。我的意思不是对图像进行平移和缩放,而是对带有某些控件的整个页面(窗口)布局(或其一部分)进行平移和缩放。
布局的哪些功能以及所使用的自定义控件的哪些功能使布局固定且无法进行平移和缩放?
最佳答案
一般规则
除了少数异常(exception),WPF 中的所有内容都可以根据您的喜好进行平移、缩放、旋转、拉伸(stretch)等。这包括像 Button 这样的单一控件、像 ListBox 这样的复合控件以及像 StackPanel 这样的容器。
异常(exception)情况
以下是异常(exception)情况:
如果您正在使用 Adorner 并且您的 AdornerDecorator 位于平移/缩放区域之外,则附加到平移/缩放区域的 Adorner 将平移但不会缩放。解决方案是在平移/缩放区域内放置一个额外的 AdornerDecorator。
如果您使用 Popup,它将显示在其 PlacementTarget 的平移/缩放位置,但它本身不会缩放。当您平移包含其 PlacementTarget 的区域时,它也不会移动(基本上它位于目标控件上方的自己的表面中)。为了解决这个问题,当您希望在缩放/平移区域内弹出某些内容时,请使用具有高 Z 顺序的零尺寸 Canvas 。
您定义的任何上下文菜单都将显示在弹出窗口内,因此即使您单击的区域放大或缩小,菜单项也将显示正常大小。由于上下文菜单的性质,这可能是理想的行为。如果没有,您可以将菜单项包装在 ViewBox 中,并将缩放与主区域的缩放相关联。
即使 UI 平移或缩放,您的工具提示也将显示正常大小。与 ContextMenu 的解决方案相同。
如果您使用 WinForms 集成来集成旧版 WinForms 控件和 UI,它们在某些情况下将无法正确平移、缩放和剪辑。有一种先进的技术可以解决这个问题,您可以在屏幕外实现 WinForms 控件,然后使用 BitBlt 或类似的方法将图像作为图像复制到窗口中,并将鼠标单击和击键转发到屏幕外窗口。但这是一项艰巨的工作。
如果您绕过 WPF 并直接使用 GDI+ 或 DirectX,或使用 Win32 hWnds 来显示内容或 UI,则该内容或 UI 将无法正确平移、缩放或剪切到窗口,除非您自己在窗口中执行此操作。接口(interface)代码。
最终注释
良好的 WPF UI 始终使用 Grid、DockPanel 等面板以灵活的方式布局控件,以便它们自动调整到容器大小,而不是使用固定的大小和位置。对于平移/缩放区域的内部内容也是如此,但此规则有一个异常(exception):平移/缩放区域中最外面的元素必须具有指定的大小。否则什么将定义被平移/缩放的区域?
实现平移/缩放功能的简单方法是调整平移/缩放区域中最外层控件的 RenderTransform。有许多不同的方法来实现平移和缩放控件,例如,您可以使用工具栏按钮和 slider 、滚动条、鼠标滚轮、空格键+拖动进行平移、平移 UI 本身的可拖动区域或这些的任意组合。无论您选择哪个接口(interface),只需让它从代码隐藏中适本地更新 RenderTransform 即可。
如果您选择的平移机制是滚动条,您可能需要使用 ScrollViewer 并且仅使用 RenderTransform 进行缩放。
确保在平移/缩放区域上设置剪辑。否则,如果您放大或平移侧面的项目,它们在平移/缩放区域之外仍然可见。
关于WPF 和 Silverlight 控件和布局平移和缩放功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060133/
我正在尝试从 F# 编译代码以在 Silverlight 中使用。我编译: --noframework --cliroot "C:\program Files\Microsoft Silverligh
我正在为 Silverlight 安装一个编程环境并试图理顺需要安装的内容,感谢反馈: 在 http://silverlight.net/GetStarted ,第一点允许您安装“ Silverlig
Silverlight RIA 值得学习还是我应该坚持普通的 Silverlight? 背景: 我在 WPF 中做了几个小应用程序 我有 12 年的 VB6/WinForms 模型商业应用经验 我希望
我已经熟悉 Silverlight 编程,但没有任何 GIS 经验。 我作为 Silverlight 开发人员的角色只是显示现有的 GIS 数据。 如果你们有任何经验arcGIS silverligh
我需要在我的 Silverlight 应用程序中创建滚动选取框。选取框需要从右向左滚动。当它完成滚动时,它需要自动重新启动 诀窍是,我需要使用 ItemsControl,因为项目将在滚动时添加到列表中
Silverlight 导航模板在浏览器外运行时是否有效? 最佳答案 当然可以。 并且您可以使用 NavigationServices 函数来创建自定义的“后退”或“前进”按钮 很好的例子:Link
用户通过导航到给定的 URL 在他们的浏览器中启动 Silverlight 应用程序。 然后用户打开另一个浏览器并通过导航到相同的 URL 启动相同的 Silverlight 应用程序。 应用程序的第
Silverlight 4 程序集二进制文件是否与 Silverlight 5 兼容。SL4 程序集是否“在 SL5 运行时中运行”?如果兼容,是否100%兼容。您应该能够在您的 SL5 项目中使用第
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 9年前关闭
我正在寻找是否可以在可以在 application.resources 中设置然后在整个应用程序中使用的 Silverlight 控件中使用应用程序范围的字体。他们不需要指定有关字体的其他内容,例如粗
我正在使用Silverlight4。我想用一个可用字体列表填充组合框。我搜索过很多东西,找不到解决方法。似乎有很多死胡同。五月份曾提出过类似的问题,但没有合适的答案。 当然不是不可能吗? 最佳答案 如
我正在为 Silverlight 很好地实现弱事件模式以避免内存泄漏。 似乎有一些实现,但代码并非微不足道,很难知道哪个是正确的。我找不到微软的任何官方推荐。 如果可能的话,我追求简单的语法。 干杯。
Silverlight 应用程序是在您每次访问该站点时都会下载,还是会检查版本/大小信息并仅下载较新版本的文件? 最佳答案 Silverlight 2 在这方面没有什么特别的,我读过的最简洁的解释来自
我正在尝试在 silverlight 中使用样式触发器,如下所示:
我想尝试制作一个包含多个 Silverlight 画廊中的图片的 asp 网站。我想这样做的原因是我想要这样的东西: Text describing some places. Gallery with
WPF 3.5 有 PresentationTraceSources用于诊断和WPFPerf用于性能和数据绑定(bind)诊断。 Silverlight 是否有等效的工具/库? 最佳答案 尽管我已将
我有一个表示有向图的数据结构,我正在寻找一个好的 Silverlight 可视化,以允许我从一个节点导航到另一个节点,最好有一些漂亮的动画。 有没有人知道这种显示的任何好的 UI 控件或框架?甚至来自
我可以将byte []转换为图像: byte[] myByteArray = ...; // ByteArray to be converted MemoryStream ms = new Memo
我有多个Silverlight项目,希望使用相同的样式,配色方案和一些模板化对象。 我该如何完成? 最佳答案 一种实现方法是创建一个新的silverlight类库,该库将是您共享的主题/样式程序集,其
我正在尝试使用 SLLAUNCHER.EXE 启动已安装的 SL Out-of-Browser App。运行以下命令后,桌面上的 MyApp 启动图标就消失了。如果我在没有覆盖开关的情况下尝试它,则不
我是一名优秀的程序员,十分优秀!