Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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
Wpf ItemsControl不垂直拉伸_Wpf_Prism_Itemscontrol_Stretch - Fatal编程技术网

Wpf ItemsControl不垂直拉伸

Wpf ItemsControl不垂直拉伸,wpf,prism,itemscontrol,stretch,Wpf,Prism,Itemscontrol,Stretch,我有一个PRISM v5应用程序,这给我带来了一些麻烦 <!--Header region--> <ItemsControl Grid.Row="0" Grid.Column="0" regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/> <!--Main region--> <ContentControl

我有一个PRISM v5应用程序,这给我带来了一些麻烦

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
在我的
UserControl
网格中有三个
ItemsControls

<Grid VerticalAlignment="Stretch">

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*"/>
        <ColumnDefinition Width="1*" MinWidth="50"/>
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" MinHeight="50"/>
        <RowDefinition MinHeight="50" />
    </Grid.RowDefinitions>

    <!--Header region-->
    <ItemsControl
        Grid.Row="0"
        Grid.Column="0"
        Grid.ColumnSpan="2"
        regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

    <!--Main region-->
    <ItemsControl
        Grid.Row="1"
        Grid.Column="0"
        regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}">
    </ItemsControl>

    <!--Menu region-->
    <ItemsControl
        Background="DarkGoldenrod"
        Grid.Row="1"
        Grid.Column="1"
        regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MenuRegion}">
    </ItemsControl>
<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
在进行新的搜索之前,我甚至已经在谷歌上搜索到了第4页——我真的非常渴望能够垂直延伸这一页面

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
更新1:

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
因此,我将一个
ItemsControl
更改为
ContentControl

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
我是这样做的:

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
var obj = _container.Resolve<SecondView>();
var region = _manager.Regions[RegionNames.MainRegion];
region.Add(obj);
更改第二个
行定义的
高度
,将得到所需的结果。但现在我需要知道它有多高,因为它不会缩放

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
所以我在其他地方寻找解决办法。 有人(在某处,我不记得在哪里)说这可能会奏效:

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
<Grid.Resources>
    <resources:VisibilityToStarHeightConverter x:Key="VisibilityToStarHeightConverter"/>
</Grid.Resources>

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" MinHeight="50" />
    <RowDefinition Height="{Binding Converter={StaticResource VisibilityToStarHeightConverter}, ConverterParameter=5}" />
</Grid.RowDefinitions>
但是我无法加载应用程序,除非在
(Visivility)值上获得
InvalidCastException

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>

有人知道如何动态查看窗口的高度吗?

项目控件是垂直拉伸的,但是您的视图将作为项目添加到项目控件中

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>

对您的区域使用
ContentControl

尝试将网格行定义为拉伸,如下所示:

<!--Header region-->
<ItemsControl
    Grid.Row="0"
    Grid.Column="0"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.HeaderRegion}"/>

<!--Main region-->
<ContentControl
    Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    VerticalContentAlignment="Stretch"
    regions:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}"/>
public class VisibilityToStarHeightConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((Visibility)value == Visibility.Collapsed)
        {
            return new GridLength(0, GridUnitType.Star);
        }
        else
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("parameter");
            }

            return new GridLength(double.Parse(parameter.ToString(), culture), GridUnitType.Star);
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" MinHeight="50"/>
    <RowDefinition Height="*" MinHeight="50" />
</Grid.RowDefinitions>


视图的内容是什么?有些控件根本不会拉伸。最好的例子是Stackpanel。在垂直方向上,它不会超出其子级所需的最小垂直空间。我使用背景色设置为绿色的
网格
,而背景色设置为红色的网格@gusdor可能会有重复,这将是一个麻烦的修复(不仅仅是这个),但我会试一试,然后再报告。它仍然不能与ContentControl一起工作。你还有什么建议吗?让我收回吧。在我的高度设置中发现错误。让我也更正它-如果我指定高度,它会工作(但我不希望这样)。它仍然不起作用。您还有其他建议吗?与更新1中的结果相同。尝试查看我的更新2