43

WPFアプリケーションではListViewなくコントロールを使用しています。に幅を指定したいのですが、 に幅を指定すると、コンパイル時にエラーが発生します。画面を最大化したときに余分なスペースを自動的に埋めることができるように、に幅を提供する方法を教えてください。DataGrid*ListView.GridViewColumn*ListView.GridViewColumn*ListView.GridViewColumnListView.GridViewColumn

これに関するヘルプは大歓迎です。ありがとう

4

2 に答える 2

80

その解決策を試してください:

<ListView>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="column1" x:Name="col1"/>
            <!--Column that shall resize: Width is set to the Actual Width of the helper field defined below-->
            <GridViewColumn Header="column2" 
                            Width="{Binding ElementName=helperField, Path=ActualWidth}"/>
        </GridView>
    </ListView.View>
    Test Text
</ListView>

<!--This is the hidden helper Grid which does the resizing -->
<Grid Visibility="Hidden">
    <Grid.ColumnDefinitions>
        <!--Width is bound to width of the first GridViewColumn -->
        <ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}"/>
        <!--Width is set to "Fill"-->
        <ColumnDefinition Width="*"/>
        <!--Correction Width-->
        <ColumnDefinition Width="10"/>
    </Grid.ColumnDefinitions>
    <!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
    <Grid Grid.Column="1" x:Name="helperField"/>
</Grid>

次のリンクで他の解決策を見つけることもできます:

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/3ee5696c-4f26-4e30-8891-0e2f95d69623/

于 2012-04-25T04:51:55.083 に答える
3

私はこれへのアプローチをここに投稿しましたが、これは少し異なります(ただし、非常に信頼性が高く、パーセンテージ幅の列を許可しますhttps://stackoverflow.com/a/10526024/41211)。上記を試し、devenvを見つけていました。上記の動的バインディングを使用してデザイナービューを常に再評価しようとしていたため、exe処理が最大になりました。

于 2012-05-10T00:33:40.103 に答える