我在标签中有一个ComboBox,我可以用鼠标改变它的大小,倾斜和旋转。但是,当我想要移动它时,我不被允许。要改变组合框的位置,我必须手动输入边距字段中的坐标,这真的很烦人。为什么我不能通过用鼠标拖动它来简单地移动它?
更新
这实际上只发生在第二个标签中。在第一个标签中,我可以按预期移动控件。 所以我在我的xaml文件中剪切并粘贴了标签部分,以便更改标签顺序。现在,我可以在第一个选项卡(前第二个选项卡)中移动控件,而我无法在第二个选项卡中移动控件。
对我来说听起来像WPF设计师的错误......
更新2
这是一个简单的测试用例。无法移动第二个选项卡中的TestComboBox。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="718" Width="728" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">
<TabControl HorizontalAlignment="Left" VerticalAlignment="Top">
<TabItem Header="TabItem">
<Grid Margin="0,10,0,4" Height="639" Width="708">
</Grid>
</TabItem>
<TabItem Header="TabItem" Height="23">
<Grid Margin="0,10,0,4" Height="639" Width="708">
<ComboBox x:Name="TestComboBox" HorizontalAlignment="Left" Margin="84,10,0,0" Width="217" VerticalAlignment="Top" Height="22"/>
</Grid>
</TabItem>
</TabControl>
</Window>
更改Tab键顺序后,可以移动TestComboBox:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="718" Width="728" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">
<TabControl HorizontalAlignment="Left" VerticalAlignment="Top">
<TabItem Header="TabItem" Height="23">
<Grid Margin="0,10,0,4" Height="639" Width="708">
<ComboBox x:Name="TestComboBox" HorizontalAlignment="Left" Margin="84,10,0,0" Width="217" VerticalAlignment="Top" Height="22"/>
</Grid>
</TabItem>
<TabItem Header="TabItem">
<Grid Margin="0,10,0,4" Height="639" Width="708">
</Grid>
</TabItem>
</TabControl>
</Window>
答案 0 :(得分:2)
我遇到了同样的问题。通过将TabControl放在网格中来解决它 - 请参阅下面的代码。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="718" Width="728" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">
<Grid>
<TabControl HorizontalAlignment="Left" VerticalAlignment="Top">
<TabItem Header="TabItem" Height="23">
<Grid Margin="0,10,0,4" Height="639" Width="708">
<ComboBox x:Name="TestComboBox" HorizontalAlignment="Left" Margin="84,10,0,0" Width="217" VerticalAlignment="Top" Height="22"/>
</Grid>
</TabItem>
<TabItem Header="TabItem">
<Grid Margin="0,10,0,4" Height="639" Width="708">
<ComboBox x:Name="TestComboBox2" HorizontalAlignment="Left" Margin="84,10,0,0" Width="217" VerticalAlignment="Top" Height="22"/>
</Grid>
</TabItem>
</TabControl>
</Window>
答案 1 :(得分:0)
我刚尝试将TabControl
添加到新的WPF应用程序中。我添加了两个TabItem
控件,每个控件都有一个ComboBox
。起初,Visual Studio允许我在第一个选项卡中移动ComboBox
,而不是第二个选项卡。
在第二个标签中移动ComboBox
后,当我松开鼠标按钮时,它会跳回原来的位置。仔细观察,这是因为第一个Grid
中有一个TabItem
,而第二个{{1}}中没有{{1}} ...也许你有类似的问题?
但是,在测试了刚添加的代码之后,我不敢说我没有遇到同样的问题。也许您应该重新启动Visual Studio甚至是您的计算机?
答案 2 :(得分:0)
我在使用WPF时遇到了同样的问题,但我这样做是为了“绕过”它。
只需在您正在处理的网格之前对网格进行评论。
我知道在处理大型项目时这很痛苦,但这是我找到的唯一方法。