4

我在选项卡中有一个 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>
4

3 回答 3

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>
于 2014-09-06T01:39:07.207 回答
0

我刚刚尝试将 a 添加TabControl到新的 WPF 应用程序中。我添加了两个TabItem控件,ComboBox每个控件都有一个。起初,Visual Studio 允许我ComboBox在第一个选项卡中移动,但不能在第二个选项卡中移动。

在第二个选项卡中移动后ComboBox,当我松开鼠标按钮时,它会跳回到原来的位置。仔细检查,这是因为Grid第一个有 a TabItem,但第二个没有……也许你有类似的问题?

但是,在测试了您刚刚添加的代码之后,恐怕我没有遇到您遇到的相同问题。也许您应该重新启动 Visual Studio,甚至您的计算机?

于 2013-08-21T12:54:53.033 回答
0

我在使用 WPF 时遇到了同样的问题,但我这样做是为了“绕过”它。

只需在您将要处理的网格之前评论网格。

我知道在处理大型项目时这样做很痛苦,但这是我找到的唯一方法。

于 2013-11-11T02:21:26.523 回答