亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Datagrid高度展開窗口

Datagrid高度展開窗口

C#
紅顏莎娜 2022-11-21 16:22:26
現在我在一個窗口中有一個數據網格,在某處單擊按鈕后會填滿,每當數據網格填滿時,它就會超過窗口的當前大小并進一步擴展窗口。確保數據網格目前只能擴展到窗口的當前大小的方法是什么。我要求窗口之后能夠手動調整大小,因此無法設置最大高度。    <Grid>    <Grid.RowDefinitions>        <RowDefinition Height="*"/>        <RowDefinition Height="40" MinHeight="40"/>    </Grid.RowDefinitions>    <Grid.ColumnDefinitions>        <ColumnDefinition Width="Auto"/>        <ColumnDefinition Width="*"/>        <ColumnDefinition Width="Auto" MinWidth="250"/>    </Grid.ColumnDefinitions>    <GroupBox Grid.Column="0 Margin="10,0,5,0">        <Grid MaxHeight="{Binding ActualHeight, ElementName= AddressTable}">            <Grid.RowDefinitions>                <RowDefinition/>            </Grid.RowDefinitions>            <Grid.ColumnDefinitions>                <ColumnDefinition Width="Auto"/>                <ColumnDefinition Width="Auto"/>            </Grid.ColumnDefinitions>                 <DataGrid Name="AddrTable" VerticalScrollBarVisibility="Auto"                        Grid.Row="0"
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

我不確定這是否是您想要的,但是Height使用 Window 使 MaxHeight 動態化的一種方法是使用RelativeSource. 讓我解釋:


在您的Grid中,您將 設置MaxHeight為ActualHeight窗口的。為此,您只需要綁定


MaxHeigth = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=ActualHeight}"

現在,這不是一個很好的解決方案,因為窗口內有邊距、填充和更多項目。所以你想要的是Grid使ActualHeight. 因此,您需要一個Converter。


我已經為您制作了這個,它會返回一定百分比的價值。


public class SizePercentageConverter : IValueConverter

{

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)

    {

        if (value == null) 

            return 0:

        if (parameter == null)

            return (double)value;


        var split = parameter.ToString().Split('.');

        var parameterDouble = double.Parse(split[0]) + double.Parse(split[1]) / Math.Pow(10, split[1].Length);

        return (double)value * parameterDouble;

    }


    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

    {

        // Don't need to implement this

        return null;

    }

在ResourceDictionary中定義它之后


<converters:SizePercentageConverter x:Key="PercentageConverter" />

你可以在你的MaxHeight. 例如,如果你希望它是的70%,ActualHeight你只需要寫


MaxHeight = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=ActualHeight, Converter={StaticResource PercentageConverter}, ConverterParameter=0.7}"

否則,如果您還可以創建一個減去一個值的轉換器。例如,一旦綁定它就返回ActualHeight- parameter。


我希望這會有所幫助,并讓我知道進展情況。


查看完整回答
反對 回復 2022-11-21
  • 1 回答
  • 0 關注
  • 89 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號