在 ViewBox 中缩放组合框弹出窗口
Scaling ComboBox Popup inside ViewBox
我正在开发一个 UWP 应用程序并注意到 ComboBox 元素(只是弹出窗口)在放置在 ViewBox 中时缩放不正确。外观如下:
此外,由于 ComboBox 检测似乎偏离了实际的鼠标位置,因此选择了错误的元素。 ComboBox 与网格中的其他元素并排放置(网格是 ViewBox 的直接子元素)。其他一切都正常工作并且没有拉伸。
有没有办法在保留 ViewBox 的情况下解决这个问题?
提前致谢!
编辑:
<Viewbox>
<Grid Width="1920" Height="1280" HorizontalAlignment="Center">
<ComboBox HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="50">
<ComboBoxItem Content="Test123"></ComboBoxItem>
<ComboBoxItem Content="Test456"></ComboBoxItem>
<ComboBoxItem Content="Test789"></ComboBoxItem>
</ComboBox>
</Grid>
</Viewbox>
这几乎就是我想要做的所有事情,我需要应用程序可以调整大小并且只支持特定的分辨率 (1920x1280)。它需要以某种方式适应每个可能的 Windows-缩放设置。
它 seems to be a bug 最近由 Windows 团队介绍。链接 post 中建议的修复方法之一是在 ViewBox
:
上添加一个不可见的旋转
<Viewbox>
<Viewbox.RenderTransform>
<RotateTransform Angle="0.001"></RotateTransform>
</Viewbox.RenderTransform>
<Grid Width="1920" Height="1280" HorizontalAlignment="Center">
<ComboBox HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="50">
<ComboBoxItem Content="Test123"></ComboBoxItem>
<ComboBoxItem Content="Test456"></ComboBoxItem>
<ComboBoxItem Content="Test789"></ComboBoxItem>
</ComboBox>
</Grid>
</Viewbox>
这当然很恶心,这就是为什么微软建议遵循 this guide 来寻找替代想法(没有不应该用于保持应用程序响应的 ViewBox
)。
我正在开发一个 UWP 应用程序并注意到 ComboBox 元素(只是弹出窗口)在放置在 ViewBox 中时缩放不正确。外观如下:
此外,由于 ComboBox 检测似乎偏离了实际的鼠标位置,因此选择了错误的元素。 ComboBox 与网格中的其他元素并排放置(网格是 ViewBox 的直接子元素)。其他一切都正常工作并且没有拉伸。
有没有办法在保留 ViewBox 的情况下解决这个问题? 提前致谢!
编辑:
<Viewbox>
<Grid Width="1920" Height="1280" HorizontalAlignment="Center">
<ComboBox HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="50">
<ComboBoxItem Content="Test123"></ComboBoxItem>
<ComboBoxItem Content="Test456"></ComboBoxItem>
<ComboBoxItem Content="Test789"></ComboBoxItem>
</ComboBox>
</Grid>
</Viewbox>
这几乎就是我想要做的所有事情,我需要应用程序可以调整大小并且只支持特定的分辨率 (1920x1280)。它需要以某种方式适应每个可能的 Windows-缩放设置。
它 seems to be a bug 最近由 Windows 团队介绍。链接 post 中建议的修复方法之一是在 ViewBox
:
<Viewbox>
<Viewbox.RenderTransform>
<RotateTransform Angle="0.001"></RotateTransform>
</Viewbox.RenderTransform>
<Grid Width="1920" Height="1280" HorizontalAlignment="Center">
<ComboBox HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="50">
<ComboBoxItem Content="Test123"></ComboBoxItem>
<ComboBoxItem Content="Test456"></ComboBoxItem>
<ComboBoxItem Content="Test789"></ComboBoxItem>
</ComboBox>
</Grid>
</Viewbox>
这当然很恶心,这就是为什么微软建议遵循 this guide 来寻找替代想法(没有不应该用于保持应用程序响应的 ViewBox
)。