WPF GridView不同PC分辨率的列宽

时间:2015-07-24 12:16:26

标签: wpf gridview width

如何设置GridViewColumn的宽度,它将在不同的分辨率上一直工作?例如,我有这个listView:enter image description here

然后我在另一台PC上打开它(分辨率不同)我得到了这个观点:

enter image description here

缺少几列。 我复制了我的一个列xaml代码:

<ListView x:Name="sample" Margin="30,98.4,362,150"  ScrollViewer.VerticalScrollBarVisibility="Visible" 
               AlternationCount="2" ScrollViewer.CanContentScroll="False">
            <ListView.View>
                <GridView>

                    <GridViewColumn>

                        <!-- 1st Column-->
                        <GridViewColumnHeader Content="Product" Margin="10,0,0,0"/>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Vertical">
                                <Grid Height="42px">
                                        <TextBlock Text="{Binding odd}" VerticalAlignment="Center"  
                                                  Width="600" TextAlignment="Left"/>
                                    </Grid>
                                    <TextBlock  Foreground="#B30C0C" Height="42px" Padding="10,5,0,0" Text="{Binding discounText}" 
                                                Visibility="{Binding IsDiscount, Converter={StaticResource VisibilityConverter}}" />
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn >

你怎么看我在TextBlock中写宽度参数。我如何重写它或者可能在代码中进行一些更改?

1 个答案:

答案 0 :(得分:0)

使用相对大小调整(使用$('.filterMenu label').on('click', function () { var id = $(this).data('id'); $('.galeria > div').hide(); $('.galeria > div[data-categories*="'+id+'"]').show(); }); )而不是固定值。为此,您必须将*设置从Width移至列本身:

TextBlock

我已设置<GridViewColumn Width="600*"> <!-- 1st Column--> <GridViewColumnHeader Content="Product" Margin="10,0,0,0"/> <GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Vertical"> <Grid Height="42px"> <TextBlock Text="{Binding odd}" VerticalAlignment="Center" TextAlignment="Left"/> </Grid> <TextBlock Foreground="#B30C0C" Height="42px" Padding="10,5,0,0" Text="{Binding discounText}" Visibility="{Binding IsDiscount, Converter={StaticResource VisibilityConverter}}" /> </StackPanel> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> ,因为保持当前比例的最快方法是保持您现在拥有的相同值,但添加600*。但是这个数字可以低很多,因为它只是定义列之间的比例......随意玩这些值以获得你想要的效果。