Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网格列定义星形宽度超出父容器';界_C#_Wpf_Xaml_User Interface_.net 4.0 - Fatal编程技术网

C# 网格列定义星形宽度超出父容器';界

C# 网格列定义星形宽度超出父容器';界,c#,wpf,xaml,user-interface,.net-4.0,C#,Wpf,Xaml,User Interface,.net 4.0,我将一个网格行设计为另一个网格,在两列之间分割20/80,左侧的一列最小宽度为250: <Grid Grid.Row="1" HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" MinWidth="250"/> <ColumnDefinition Width="4*"

我将一个网格行设计为另一个网格,在两列之间分割20/80,左侧的一列最小宽度为250:

    <Grid Grid.Row="1" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*" MinWidth="250"/>
            <ColumnDefinition Width="4*"/>
        </Grid.ColumnDefinitions>

        <Grid Grid.Column="0" Background="Red" />
        <Grid Grid.Column="1" Background="Blue" />
    </Grid>

当宽度大于1250时,这与预期的效果相同,但当我收缩到该宽度以下时,第一列停止收缩(它应该停止收缩),因为它已达到250,但第二列继续以与之前相同的速率收缩(而不是以与周围窗口相同的速率收缩)。结果是,即使网格设置为拉伸到其容器,也会剪切部分内容:

为什么蓝色框架不能像其他星形宽度列那样调整大小以适应其父容器?为什么设置最小宽度突然打破了这一点


更新:我已经在一个示例窗口中重建了我的整个UI(通过简单地用边框替换每个部分的内容),但无法重现问题:

内容(没有遇到任何MinWidth约束,并且似乎也在正确调整大小,尽管与其父网格列一样太慢)是否仍在以某种方式影响网格列?那么原稿在用户控件中,而这在窗口中这一事实又如何呢?

这是完全正确的。 在定义中,您定义第一列的宽度必须至少为250。所以1*也必须至少是250。第二列宽度必须是第一列的值乘以4。对不起,我的英语不好,希望你能理解。 我找不到一个简单快速的解决办法。也许您必须将第二列的MaxWidt属性绑定到网格的ActualWidth属性,然后将该值减少250。

这是完全正确的。 在定义中,您定义第一列的宽度必须至少为250。所以1*也必须至少是250。第二列宽度必须是第一列的值乘以4。对不起,我的英语不好,希望你能理解。
我找不到一个简单快速的解决办法。也许您必须将第二列的MaxWidt属性绑定到网格的ActualWidth属性,然后将该值减少250。

很抱歉-根据原始问题中的信息,无法回答此问题

不幸的是,对我来说,这个问题是Xceed DataGridControl实现中的一个bug。在我的原始UI中,通过简单地用边框或其他控件替换每个DataGridControl,所有元素的大小都会按原样调整

问题不是DataGridControls遇到了自己的大小限制。事实上,随着窗口的调整,他们一直在调整自己的大小,但他们弄错了。我的猜测是,它们的实现依赖于向上遍历层次结构或父UI元素,并根据它们计算的可用空间大小调整它们自己的大小。我发现,除了指定一个父元素的确切宽度之外,没有什么能解决这个问题。如果父元素使用星型大小调整,并且这些宽度受列定义的约束,以具有最大或最小宽度或高度,则Xceed DataGridControl会忽略并错误地请求大于或小于可用大小的大小,即使已告知其拉伸以适应其父控件

我发现唯一不涉及抵制Xceed(这很诱人)的解决方法是重新设计布局,使第一列不随窗口的其余部分增长,只需固定在其最小宽度:

    <Grid Grid.Row="1" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="250"/>
            <ColumnDefinition Width="4*"/>
        </Grid.ColumnDefinitions>

        <Grid Grid.Column="0" Background="Red" />
        <Grid Grid.Column="1" Background="Blue" />
    </Grid>


在大分辨率屏幕上,它看起来很奇怪,而且被不成比例地挤压,但在自动调整其尺寸的同时限制宽度的任何尝试都会导致所描述的行为。

很抱歉-鉴于原始问题中的信息,无法回答此问题

不幸的是,对我来说,这个问题是Xceed DataGridControl实现中的一个bug。在我的原始UI中,通过简单地用边框或其他控件替换每个DataGridControl,所有元素的大小都会按原样调整

问题不是DataGridControls遇到了自己的大小限制。事实上,随着窗口的调整,他们一直在调整自己的大小,但他们弄错了。我的猜测是,它们的实现依赖于向上遍历层次结构或父UI元素,并根据它们计算的可用空间大小调整它们自己的大小。我发现,除了指定一个父元素的确切宽度之外,没有什么能解决这个问题。如果父元素使用星型大小调整,并且这些宽度受列定义的约束,以具有最大或最小宽度或高度,则Xceed DataGridControl会忽略并错误地请求大于或小于可用大小的大小,即使已告知其拉伸以适应其父控件

我发现唯一不涉及抵制Xceed(这很诱人)的解决方法是重新设计布局,使第一列不随窗口的其余部分增长,只需固定在其最小宽度:

    <Grid Grid.Row="1" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="250"/>
            <ColumnDefinition Width="4*"/>
        </Grid.ColumnDefinitions>

        <Grid Grid.Column="0" Background="Red" />
        <Grid Grid.Column="1" Background="Blue" />
    </Grid>


在大分辨率屏幕上,它看起来很奇怪,而且被不成比例地压扁,但在自动调整大小的同时限制宽度的任何尝试都会导致所描述的行为。

Hi。将您的代码放在窗口中,它对我来说运行正常(如预期的那样)。可能的解决方法如下:@nestorartro您是对的,我将添加更多父容器代码,直到我看到出现故障的地方并进行更新。您好。把你的代码放在一个窗口中,它对我来说工作正常(正如预期的那样)。可能的解决方法是:@nestorartro你说得对,我将添加mo