C# 格线柱的宽度
我在网格中设置列宽时遇到问题。网格是在按钮内部自动生成的,我不知道它的实际宽度,也不知道窗口的宽度。我在其中定义了两列,一列具有静态宽度,第二列希望设置为所有左侧位置。问题是,我只是在程序运行时生成所有这些网格和列,所以我不能使用任何其他对象的宽度属性,因为所有对象都是double.NaN 我想做的是生成一个包含两列的按钮网格,一个是静态宽度,另一个是宽度可以随时间变化的,如图所示(红色文本只是一条注释) 我用来生成网格的代码。目前,有问题的列的宽度属性设置为“?”: 备选选项-ListView(仍然是相同的问题,同样,WidthValue=“??”的位置是我不知道如何设置的位置):C# 格线柱的宽度,c#,windows,xaml,uwp,grid-layout,C#,Windows,Xaml,Uwp,Grid Layout,我在网格中设置列宽时遇到问题。网格是在按钮内部自动生成的,我不知道它的实际宽度,也不知道窗口的宽度。我在其中定义了两列,一列具有静态宽度,第二列希望设置为所有左侧位置。问题是,我只是在程序运行时生成所有这些网格和列,所以我不能使用任何其他对象的宽度属性,因为所有对象都是double.NaN 我想做的是生成一个包含两列的按钮网格,一个是静态宽度,另一个是宽度可以随时间变化的,如图所示(红色文本只是一条注释) 我用来生成网格的代码。目前,有问题的列的宽度属性设置为“?”: 备选选项-ListView
我认为您不必设置要设置的宽度。这种情况下的问题应该是DataTemplate
的内容根本没有拉伸
您必须将以下行添加到列表视图中
,以扩展内容:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
顺便说一句,我明白了,在ListView中,您经常使用带有ColumnDefinitions
或RowDefinitions
的网格。这可能会降低您的UI速度。。你应该考虑使用和删除一些不必要的网格。这是我从代码中得到的(不是我想要的)。(红色的图形是调试器显示给我的文本框边框。我正在做的是从XML文件生成接口,所以我不能真正使用该方法,我已经尝试过使用星形宽度,但它没有真正起作用。它仍然像自动宽度一样,按钮在那里使网格可点击当然,这仍然不是问题。尽管我删除了您提到的线条并添加了星形宽度,但问题仍然存在。我还更改了一些对齐属性,但这仍然不是解决方案。我刚刚找到了实现所需的方法,但这不是功能,而是缺陷。诀窍是设置插入到问题中的网格的宽度ematic列到一个像10000这样的大数字,然后它的右侧被切割,其余部分就像我想要的,但它仍然不是我想要的(尽管看起来很完美)您正在将两个文本的水平对齐设置为拉伸和线条,然后将其宽度设置为GridButton.Width-80。我不确定这是否会导致问题,但您可以尝试删除线条。
<ListView Name="FileListView" Margin="0,0,0,0" Padding="10,10,10,10">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="90" Margin="0,0,0,0" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="2"/>
<RowDefinition Height="92"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0"
BorderThickness="0,2"
CornerRadius="2"
BorderBrush="Black"
Margin="40,0"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
/>
<Grid Grid.Row="1" Height="90" Margin="0" Padding="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="65"/>
</Grid.ColumnDefinitions>
<Grid Name ="Texts" Grid.Column="0" HorizontalAlignment="Stretch" Margin="10,10">
<Button HorizontalAlignment ="Stretch" Margin ="0" Height = "70" Tag = "{Binding GridButtonTag}" Background ="#00FFFFFF" Padding = "0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" FontSize = "45" FontWeight="Bold" TextAlignment="Right" Text="{Binding QuestionsAmount}" />
<Grid Grid.Column="0" Width="????">
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" FontSize = "35" FontWeight="Bold" TextAlignment="Left" Text="{Binding Name}" VerticalAlignment="Center"/>
<TextBlock Grid.Row="1" FontSize = "17" TextAlignment="Left" Text="{Binding Description}" VerticalAlignment="Center"/>
</Grid>
</Grid>
</Button>
</Grid>
<Grid Grid.Column="1">
<Grid Name="Buttons" Width ="65" HorizontalAlignment="Stretch" Padding = "10,5,10,10" Height = "90" Margin = "0">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Tag = "{Binding PlayButtonTag}" Margin = "0" Height = "50" Width = "50" HorizontalAlignment = "Center" HorizontalContentAlignment = "Center" VerticalAlignment = "Top" VerticalContentAlignment = "Center" Background = "#00FFFFFF" Padding = "0">
<Image Width="50" Height="50" Source="ms-appx:///Assets/Images/PlayIcon.png" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
<Grid Grid.Row="1" Margin="0,0,0,0" Padding="0,0,0,0" Width="50" Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Tag = "{Binding EditButtonTag}" Margin = "0" Height = "20" Width = "20" HorizontalAlignment = "Left" HorizontalContentAlignment = "Center" VerticalAlignment = "Top" VerticalContentAlignment = "Center" Background = "#00FFFFFF" Padding = "0">
<Image Width="20" Height="20" Source="ms-appx:///Assets/Images/EditIcon.png" HorizontalAlignment="Center" VerticalAlignment="Center"
</Button>
<Button Grid.Column="1" Margin = "0" Tag = "{Binding DeleteButtonTag}" Height = "20" Width = "20" HorizontalAlignment = "Right" HorizontalContentAlignment = "Center" VerticalAlignment = "Top" VerticalContentAlignment = "Center" Background = "#00FFFFFF" Padding = "0">
<Image Width="20" Height="20" Source="ms-appx:///Assets/Images/DeleteIcon.png" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
</Grid>
</Grid>
</Grid>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>