- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WPF 项目,我通过将视频控件放置在 ViewBox 中来保持视频比例。视频控件是一个包含在 WindowsFormsHost 中的 WinForms 对象。我还添加了一个 gridSplitter 来调整 ViewBox 的大小。一切都很好,直到我注意到一个奇怪的错误。当我使用 gridSplitter 控件将 ViewBox 最小化到接近于零时,视频比例会在再次展开后搞砸。当我使用 gridSplitter 将 ViewBox 一直收缩到 0 时,WindowsFormHost 在扩展后将完全消失(它仍然存在,但它的 ActualWidth 和 ActualHeight 现在为 0)。
删除 ViewBox 控件,仅使用 WindowsFormsHost 效果很好,但我需要 ViewBox 来控制纵横比。如果找不到解决方案,我将不得不自己控制比率作为解决方法。
我想我一定是做错了什么,所以我写了一个快速测试程序来重现这个问题。我将在下面发布完整程序的链接(它在 C#、VS2008 中)。
在测试程序中,我创建了一个包含两列的网格,并使用网格拆分器调整它们的大小。然后,我在左侧控件中放置了一个 ViewBox,并在其中放置了一个 WindowsFormsHost。然后我在 WindowsFormsHost 中托管一个红色的 _winFormsButton。
按钮可以很好地缩放,直到您完全收缩左列然后再次展开它。按钮不见了。我如何防止这种情况发生,以便按钮在收缩和扩展左列后继续缩放?谢谢。
XAML:
<Window x:Class="DisappearingHost.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="1" HorizontalAlignment="Left" Name="gridSplitter1" Width="10" VerticalContentAlignment="Center" />
<Viewbox>
<WindowsFormsHost Name="windowsFormsHost1" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Viewbox>
</Grid>
</Window>
代码隐藏:
public partial class Window1 : Window
{
System.Windows.Forms.Button _winFormsButton = new System.Windows.Forms.Button();
public Window1()
{
InitializeComponent();
_winFormsButton.Text = "I disappear!";
_winFormsButton.Size = new System.Drawing.Size(50, 50);
_winFormsButton.BackColor = System.Drawing.Color.Red;
windowsFormsHost1.Child = _winFormsButton;
}
}
示例代码输出:
测试项目代码链接(VS2008): code
最佳答案
将您的网格拆分器放在零列中,这样您就不会出现 WPF 布局冲突。这是修改后的代码(注意 Grid Splitter 列、水平对齐和 View 框边距):
<GridSplitter Grid.Column="0" HorizontalAlignment="Right" Name="gridSplitter1" Width="10" VerticalContentAlignment="Center" />
<Viewbox Margin="10">
<WindowsFormsHost Name="windowsFormsHost1" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Viewbox>
你可以让ViewBox的边距正好在右边,让它看起来更好
关于c# - Viewbox 使 WindowsFormsHost 在 WPF 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748935/
我试图理解在 svg 中定位。 假设你有... ,其中 viewBox 的大小正确,以适合给定(已知)字体、字体粗细和字体大小的文本。没有给出一个x="..." y="..."翻译后,它不会在 vie
我使用 viewBox 来模拟路径的百分比值,如下所示: 这意味着一个单位有 5px。除了笔画始终为 5px 宽度外,这按预期工作。如何将笔画的宽度设置为始终 1px ?我已经试过了 strok
是否可以链接两个 ViewBox,以便它们始终使用相同的比例因子? 或者是否有可能提取 ViewBox 的当前比例因子以在另一个元素的 ScaleTransform 中使用? 谢谢你。 最佳答案 我想
我想知道 svg 元素的 View 框是否有任何硬性限制。当我达到非常低的值(比如当 vb 宽度约为 .002 时)或非常大的值时,我看到奇怪的剪裁,firefox 开始在 200000000 宽度左
我正在使用 View 框来缩放文本 block 。但是当文本 block 的字体大小低于某个字体大小时,我想用...修剪文本并停止缩放。 我怎样才能做到这一点?
假设我有以下简单的 SVN: 现在我想在圆旁边添加一个文本,它与圆的高度相同,在所选坐标系中为 0.2。 我怎样才能做到这一点? 最佳答案 嗯,天真的答案是使用圆的直径作为您的尺寸。即,f
在这个例子中,绿色圆圈被切断 见:http://jsfiddle.net/sCzZT/ 请注意,每个圆圈都包裹在自己的 svg 中 在这个例子中(没有嵌套的 svgs),绿色圆
我有一个带有 Canvas Child 的 Viewbox, 我有要填充的 Viewbox 的 Stretch 属性, 我更改了 Viewbox 的宽度和高度, 我需要获取 Canvas 中子项相对于
我有一个带有 Viewbox 的 WPF 窗口。我希望此 Viewbox 的其中一个子元素在任何屏幕分辨率下都保持相同的大小。 我的 XAML: Vi
这个问题在这里已经有了答案: Content of a Button Style appears only in one Button instance (3 个回答) 关闭4年前。 运行 Visua
This question有助于理解 viewBox 的用途,但并不完全相同。 目标是用相应的 viewBox 属性替换 SVG 元素的宽度和高度属性。我们的代码需要设置 viewBox,而不是宽度和
这个问题已经有答案了: How to parse SVG element's viewBox x, y, width and height values? (3 个回答) 已关闭 3 年前。 我是一个
我尝试使用 viewBox 在拉斐尔纸上用鼠标滚轮进行缩放。 Here是 JSFiddle 代码。 它有效,但现在我想放大中心,但我不知道从哪里开始。我想我应该更改 viewBox x 和 y 坐标。
我想创建可重复使用的形状,这些形状在使用时会自动缩放以适应给定视口(viewport)的大小。 我的方法是将形状包含在“symbol”元素中,并为其提供一个与形状本身大小相同的 viewBox。 这似
我想创建可重复使用的形状,这些形状在使用时会自动缩放以适应给定视口(viewport)的大小。 我的方法是将形状包含在“symbol”元素中,并为其提供一个与形状本身大小相同的 viewBox。 这似
如何通过vue.js自动评估SVG的viewbox? 我的代码: Vue.component('icon', { props: { width: { type: Number,
如何使用 XAML 和 UWP 将 Image 在 Viewbox 中垂直和水平居中?给定一个可变尺寸的图像,我需要将其缩放到容器的宽度,同时将其裁剪到特定的纵横比。 我尝试将图像的宽度和高度设置为所
我在我的项目中基于 d3.v2 库创建了力布局图。它在几乎所有部分都运行良好,但有一件事我想改变。因此,当我之后将节点拖出图形 block 时,我无法到达它。为了解决这个问题,我为我的图形添加了 vi
很久以前我做了一个 jsfiddle 来演示如何缩放到中心 ( http://jsfiddle.net/Y69nm/1/ )。现在我想缩放到给定点(光标),就像 googleMap 一样,但不知道该怎
我很惊讶我无法通过谷歌搜索找到它,但我在 WPF 窗口中有一个 Viewbox,我想通过代码向它添加一个 UserControl。 View 框是空的,它只是在某些事件期间弹出一个“等待微调器”(我厌
我是一名优秀的程序员,十分优秀!