Avalonia Grid 透過元件高度調整和強制空間重新配置 實現 隱藏列(Hide Row)/顯示列(Show Row) 範例
Avalonia Grid 透過元件高度調整和強制空間重新配置 實現 隱藏列(Hide Row)/顯示列(Show Row) 範例
資料來源: copilot + 自己
XAML
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:VPOS_Avalonia.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:local="clr-namespace:VPOS_Avalonia"
x:Class="VPOS_Avalonia.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Icon="/Assets/sys.ico"
Title="VPOS_Avalonia" Background="#ff194a6e" Loaded="Window_Loaded" Closed="Window_Closed">
<Design.DataContext>
<!-- This only sets the DataContext for the previewer in an IDE,
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
<vm:MainWindowViewModel/>
</Design.DataContext>
<Grid x:Name="FullGrid" Margin="3">
<Grid.RowDefinitions>
<RowDefinition />
<!--Workspace -->
<RowDefinition Height="40" />
<!--status column -->
</Grid.RowDefinitions>
<Grid x:Name="WorkspaceGrid" Margin="0,2,0,2" Grid.Row="0" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60"/>
<!-- Menu -->
<ColumnDefinition />
<!-- Content -->
</Grid.ColumnDefinitions>
<Grid x:Name="MenuGrid" Margin="1,0,1,0" Grid.Row="0" Grid.Column="0">
<Border x:Name="MenuBorder" BorderBrush="#194a6e" BorderThickness="1" CornerRadius="5">
<StackPanel Spacing="5">
<Border BorderThickness="2" BorderBrush="White">
<Image x:Name="SettingsBtn" Source="/Assets/settings.png" PointerPressed="SettingsBtn_Clicked"/>
</Border>
<Border BorderThickness="2" BorderBrush="White">
<Image x:Name="DevicesBtn" Source="/Assets/device.png" PointerPressed="DevicesBtn_Clicked"/>
</Border>
<Border BorderThickness="2" BorderBrush="White">
<Image x:Name="SynchronizeBtn" Source="/Assets/synchronize.png" PointerPressed="SynchronizeBtn_Clicked"/>
</Border>
<Border BorderThickness="2" BorderBrush="White">
<Image x:Name="LogoutBtn" Source="/Assets/logout.png" PointerPressed="LogoutBtn_Clicked"/>
</Border>
</StackPanel>
</Border>
<!--MenuBorder-->
</Grid>
<!--MenuGrid-->
<Grid x:Name="ContentGrid"
Grid.Row="0" Grid.Column="1" Margin="1,0,0,0"
ColumnDefinitions="5.4*,6.6*">
<Border x:Name="LeftContentBorder" Grid.Row="0" Grid.Column="0"
BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="LeftContentGrid" RowDefinitions="3.3*,5.7*,2*">
<Border x:Name="LeftContentBorder00" Grid.Row="0" Grid.Column="0"
BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="ShowInfoGrid" RowDefinitions="1.3*,1.2*,0.8*">
<Grid x:Name="ShowInfoGrid00"
Margin="2,0" Grid.Row="0" Grid.Column="0"
RowDefinitions="0.4*,0.3*,0.3*"
ColumnDefinitions="*,*,*,*,*,*" IsEnabled="True">
<TextBlock x:Name="OrderStatusLable"
Grid.Row="0" Grid.ColumnSpan="6"
Text="訂購中"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="26"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="QuantityTextLable"
Grid.Row="1" Grid.Column="0"
Text="商品數量:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="QuantityValueLable"
Grid.Row="1" Grid.Column="1"
Text="10000"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="22"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="DiscountTextLable"
Grid.Row="1" Grid.Column="2"
Text="優惠金額:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="DiscountValueLable"
Grid.Row="1" Grid.Column="3"
Text="10000"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="22"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ServiceTextLable"
Grid.Row="1" Grid.Column="4"
Text="服務費:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ServiceValueLable"
Grid.Row="1" Grid.Column="5"
Text="10000"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="22"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ReceivableTextLable"
Grid.Row="2" Grid.Column="0"
Text="應收總額:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ReceivableValueLable"
Grid.Row="2" Grid.Column="1"
Text="30000"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="22"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ChangeValueLable"
Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="4"
Text="10000"
TextWrapping="WrapWithOverflow"
Foreground="Red"
FontSize="20"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
</Grid>
<Grid x:Name="ShowInfoGrid01" Margin="2,0"
Grid.Row="1" Grid.Column="0"
RowDefinitions="2,*,*,*"
ColumnDefinitions="1.09*,1.99*,1.09*,1.5*,0.9*,0.6*">
<Separator x:Name="ShowInfoLine00" Grid.Row="0" Grid.ColumnSpan="6" Background="White" Height="2"/>
<TextBlock x:Name="OrderNoTextLable"
Grid.Row="1" Grid.Column="0"
Text="訂單編號:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="OrderNoValueLable"
Grid.Row="1" Grid.Column="1"
Text="20230927-0001"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="PickupNoTextLable"
Grid.Row="1" Grid.Column="2"
Text="取餐號:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="PickupNoValueLable"
Grid.Row="1" Grid.Column="3"
Text="00000001"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="VisitorsTextLable"
Grid.Row="1" Grid.Column="4"
Text="來客數:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="VisitorsValueLable"
Grid.Row="1" Grid.Column="5"
Text="0001"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="OrderTypeTextLable"
Grid.Row="2" Grid.Column="0"
Text="訂單類型:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="OrderTypeValueLable"
Grid.Row="2" Grid.Column="1"
Text="Uber Eats"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="TableNoTextLable"
Grid.Row="2" Grid.Column="2"
Text="桌號:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="TableNoValueLable"
Grid.Row="2" Grid.Column="3"
Text="豪華廳A0001"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ShopNoTextLable"
Grid.Row="2" Grid.Column="4"
Text="牌號:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ShopNoValueLable"
Grid.Row="2" Grid.Column="5"
Text="100"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="MemberNameTextLable"
Grid.Row="3" Grid.Column="0"
Text="會員名稱:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="MemberNameValueLable"
Grid.Row="3" Grid.Column="1"
Text="合用系統有限公司"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<TextBlock x:Name="MemberTelTextLable"
Grid.Row="3" Grid.Column="2"
Text="會員電話:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="MemberTelValueLable"
Grid.Row="3" Grid.Column="3"
Text="04-22216292"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</Grid>
<Grid x:Name="ShowInfoGrid02" Margin="2,0" Grid.Row="2" Grid.Column="0"
RowDefinitions="2,*,*"
ColumnDefinitions="1*,1.3*,0.6*,1.31*,1.19*,0.6*">
<Separator x:Name="ShowInfoLine01" Grid.Row="0" Grid.ColumnSpan="6" Background="White" Height="2"/>
<TextBlock x:Name="InvoiceNoTextLable"
Grid.Row="1" Grid.Column="0"
Text="發票號碼:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="InvoiceNoValueLable"
Grid.Row="1" Grid.Column="1"
Text="AB14433816"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<Border
BorderBrush="White"
BorderThickness="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#2470a0"
CornerRadius="5"
Margin="2,2,2,2"
Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" >
<TextBlock x:Name="TaxIDBtn" Text="客戶
統編" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" FontSize="16"/>
</Border>
<TextBlock x:Name="InvoiceCountTextLable"
Grid.Row="1" Grid.Column="3"
Text="發票剩餘張數:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="InvoiceCountValueLable"
Grid.Row="1" Grid.Column="4"
Text="100"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<Border
BorderBrush="White"
BorderThickness="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#2470a0"
CornerRadius="5"
Margin="2,2,2,2"
Grid.Row="1" Grid.Column="5" Grid.RowSpan="2" >
<TextBlock x:Name="CarrierBtn" Text="發票
載具" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" FontSize="16" />
</Border>
<TextBlock x:Name="TaxIDTextLable"
Grid.Row="2" Grid.Column="0"
Text="客戶統編:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
Padding="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="TaxIDValueLable"
Grid.Row="2" Grid.Column="1"
Text="42897648"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="20"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="CarrierTextLable"
Grid.Row="2" Grid.Column="3"
Text="發票載具:"
TextWrapping="WrapWithOverflow"
Foreground="#ff7f50"
FontSize="18"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<TextBlock x:Name="CarrierValueLable"
Grid.Row="2" Grid.Column="4"
Text="/RZDFEP2"
TextWrapping="WrapWithOverflow"
Foreground="White"
FontSize="16"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
</Grid>
</Grid><!--ShowInfoGrid-->
</Border><!--LeftContentBorder00-->
<Border x:Name="LeftContentBorder01" Grid.Row="1" Grid.Column="0"
BorderBrush="#194a6e" BorderThickness="1"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Background="White" CornerRadius="5" Margin="2,2,2,2">
<Grid x:Name="ShopcartGrid"
ColumnDefinitions="5.2*,0.8*">
<Grid x:Name="ShopcartMainGrid" Margin="0,2,0,2"
Grid.Row="0" Grid.Column="0"
RowDefinitions="*,30,30" ColumnDefinitions="*">
<ScrollViewer Grid.Row="0" Grid.Column="0" VerticalScrollBarVisibility="Visible">
<ListBox x:Name="ShopcartListView" ItemsSource="{Binding m_ShopcartItems}" SelectionMode="Single" Background="White" SelectionChanged="ShopcartListView_ItemSelected">
<ListBox.ItemTemplate>
<DataTemplate>
<!-- ListView 資料結構標準: ListView.ItemTemplate -> DataTemplate -> ViewCell-->
<Grid Background="{Binding BColor}" ColumnDefinitions="30,15,4.4*,0.7*,1*,1.2*,7" Margin="8,4,0,8">
<Image Source="{Binding Image00}" Width="20" Height="20" Grid.Column="0" PointerPressed="ShopcartListViewImage00_Clicked" />
<Image Source="{Binding Image01}" Width="10" Height="10" Grid.Column="1" PointerPressed="ShopcartListViewImage01_Clicked" />
<TextBlock Text="{Binding Name}" FontSize="{Binding Font_Size}" HorizontalAlignment="{Binding NameTextAlignment}" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="2"/>
<TextBlock Text="{Binding Amount}" FontSize="{Binding Font_Size}" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="3"/>
<TextBlock Text="{Binding Price}" FontSize="{Binding Font_Size}" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="4"/>
<TextBlock Text="{Binding Sum}" FontSize="{Binding Font_Size}" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="5"/>
<TextBlock Text="" FontSize="20" Foreground="Transparent"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
<Grid x:Name="PromotionGrid" Grid.Row="1" Grid.Column="0" RowDefinitions="*" ColumnDefinitions="*" Margin="0,0,0,3"><!--購物車促銷資訊-->
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Auto" Grid.Row="0" Grid.Column="0" >
<TextBox x:Name="txtPromotion" AcceptsReturn="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextWrapping="WrapWithOverflow" FontSize="20" Foreground="MediumBlue" Background="#FFFFDF" IsReadOnly="True"/>
</ScrollViewer>
</Grid>
<Grid x:Name="RemarkGrid" Grid.Row="2" Grid.Column="0" RowDefinitions="*" ColumnDefinitions="*" Margin="0,0,0,3"><!--購物車備註資訊-->
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Auto" Grid.Row="0" Grid.Column="0" >
<TextBox x:Name="txtRemark" AcceptsReturn="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextWrapping="WrapWithOverflow" FontSize="20" Foreground="MediumBlue" Background="#FFFFDF" IsReadOnly="True"/>
</ScrollViewer>
</Grid>
</Grid>
<Border x:Name="ShopcartBtnBorder" Grid.Row="0" Grid.Column="1"
BorderBrush="White" BorderThickness="1"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Background="#194a6e" CornerRadius="5">
<StackPanel Orientation="Vertical" Margin="3" Spacing="8" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<local:CustBtn x:Name="RemarkBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
<local:CustBtn x:Name="ModifiedBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
<local:CustBtn x:Name="PlusBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
<local:CustBtn x:Name="MinusBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
<local:CustBtn x:Name="DeleteBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
<local:CustBtn x:Name="TemporaryBtn"
BorderColor="White" MinHeight="45"
HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Grid> <!--ShopcartGrid-->
</Border><!--LeftContentBorder01-->
<Border x:Name="LeftContentBorder02" Grid.Row="2" Grid.Column="0"
BorderBrush="#194a6e" BorderThickness="1"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Background="White" CornerRadius="5">
<Grid x:Name="ShopcartBtnGrid" Margin="1,2"
RowDefinitions="*,*" ColumnDefinitions="*,*,*,*,*">
<local:CustBtn x:Name="ShopcartBtn00"
Grid.Row="0" Grid.Column="0"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn01"
Grid.Row="0" Grid.Column="1"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn02"
Grid.Row="0" Grid.Column="2"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn03"
Grid.Row="0" Grid.Column="3"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn04"
Grid.Row="0" Grid.Column="4" Grid.RowSpan="2"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn05"
Grid.Row="1" Grid.Column="0"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn06"
Grid.Row="1" Grid.Column="1"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn07"
Grid.Row="1" Grid.Column="2"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<local:CustBtn x:Name="ShopcartBtn08"
Grid.Row="1" Grid.Column="3"
BorderColor="White" Background="#194a6e"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</Border><!--LeftContentBorder02-->
</Grid><!--LeftContentGrid-->
</Border><!--LeftContentBorder-->
<Grid x:Name="MealsGrid" Grid.Row="0" Grid.Column="1" ColumnDefinitions="0.9*,5.9*">
<Border x:Name="MiddleContentBorder" Grid.Row="0" Grid.Column="0"
BorderThickness="1" BorderBrush="White" CornerRadius="5">
<StackPanel x:Name="MiddleVerticalStackLayout" Orientation="Vertical" Spacing="5" Margin="5,10,5,10">
</StackPanel>
</Border><!--MiddleContentBorder-->
<Border x:Name="RightContentBorder" Grid.Row="0" Grid.Column="1"
BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="RightContentGrid" RowDefinitions="2*,6*,3*">
<Border x:Name="RightContentBorder00" Grid.Row="0" Grid.Column="0"
Background="White" BorderThickness="1" BorderBrush="#194a6e" CornerRadius="5">
<Grid x:Name="CategoryBtnGrid" ColumnDefinitions="5*,0.5*">
<Border x:Name="CategoryBtnBorder01" Grid.Row="0" Grid.Column="1"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid RowDefinitions="*,0.85*,*" Margin="0,3,0,3">
<local:CustBtn x:Name="CategoryUpBtn" Grid.Row="0" Grid.Column="0"
Text="▲" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Top" />
<TextBlock x:Name="CategoryTextLable" Grid.Row="1" Grid.Column="0"
Text="1/2" TextWrapping="WrapWithOverflow" Foreground="White"
FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" />
<local:CustBtn x:Name="CategoryDownBtn" Grid.Row="2" Grid.Column="0"
Text="▼" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Bottom" />
</Grid>
</Border>
</Grid>
</Border><!--RightContentBorder00-->
<Border x:Name="RightContentBorder01" Grid.Row="1" Grid.Column="0"
Background="White" BorderThickness="1" BorderBrush="#194a6e" CornerRadius="5">
<Grid x:Name="ProductBtnGrid" ColumnDefinitions="5*,0.5*">
<Border x:Name="ProductBtnBorder01" Grid.Row="0" Grid.Column="1"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid RowDefinitions="*,0.3*,*">
<local:CustBtn x:Name="ProductUpBtn" Grid.Row="0" Grid.Column="0"
Text="▲" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Top" />
<TextBlock x:Name="ProductTextLable" Grid.Row="1" Grid.Column="0"
Text="1/2" TextWrapping="WrapWithOverflow" Foreground="White"
FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" />
<local:CustBtn x:Name="ProductDownBtn" Grid.Row="2" Grid.Column="0"
Text="▼" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Bottom" />
</Grid>
</Border>
</Grid>
</Border><!--RightContentBorder01-->
<Border x:Name="RightContentBorder02" Grid.Row="2" Grid.Column="0"
Background="White" BorderThickness="1" BorderBrush="#194a6e" CornerRadius="5">
<Grid x:Name="CondimentBtnGrid" ColumnDefinitions="5*,0.5*">
<Border x:Name="CondimentBtnBorder01" Grid.Row="0" Grid.Column="1"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid RowDefinitions="*,0.3*,*">
<local:CustBtn x:Name="CondimentUpBtn" Grid.Row="0" Grid.Column="0"
Text="▲" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Top" />
<TextBlock x:Name="CondimentTextLable" Grid.Row="1" Grid.Column="0"
Text="1/2" TextWrapping="WrapWithOverflow" Foreground="White"
FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" />
<local:CustBtn x:Name="CondimentDownBtn" Grid.Row="2" Grid.Column="0"
Text="▼" TextSize="18" TextColor="White" Background="#194a6e" BorderColor="White"
HorizontalAlignment="Center" VerticalAlignment="Bottom" />
</Grid>
</Border>
</Grid>
</Border><!--RightContentBorder02-->
</Grid><!--RightContentGrid-->
</Border><!--RightContentBorder-->
</Grid><!--MealsGrid-->
<Grid x:Name="DiDiMoneyInfoGrid" Grid.Row="0" Grid.Column="1" RowDefinitions="1.0*,0.6*,3.6*,4.4*" Background="#194a6e">
<!-- RowSpacing="20" -->
<Border x:Name="DiDiLogoBorder" Grid.Row="0" Grid.Column="0" Margin="10,4,10,4"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Image Source="avares://VPOS_Avalonia/Assets/didimoney.png" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
<Grid x:Name="DiDiFunctionGrid" Margin="30,10,30,0" Grid.Row="1" Grid.Column="0" ColumnDefinitions="*,*,*">
<local:CustBtn x:Name="DiDiScanBtn" Grid.Row="0" Grid.Column="0" TextColor="White" Background="#194a6e" BorderColor="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="15,0"/>
<local:CustBtn x:Name="DiDiClearBtn" Grid.Row="0" Grid.Column="1" TextColor="White" Background="#194a6e" BorderColor="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="15,0"/>
<local:CustBtn x:Name="DiDiCloseBtn" Grid.Row="0" Grid.Column="2" TextColor="White" Background="#194a6e" BorderColor="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="15,0"/>
</Grid>
<Border x:Name="DiDiBaseInfoBorder" Grid.Row="2" Grid.Column="0" Margin="10,30,10,-10"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="DiDiBaseInfosGrid" Margin="15,10,15,5" RowDefinitions="*,*,*,*,*,*,*" ColumnDefinitions="*,2*,*,2*">
<!--RowSpacing="12" ColumnSpacing="10"-->
<TextBlock x:Name="DiDiBaselab00" Text="會員電話 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="0" Grid.Column="0"/>
<TextBlock x:Name="DiDiBasetxt00" Background="White" Foreground="Blue" FontSize="20" Text="" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiBaselab01" Text="會員姓名 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="0" Grid.Column="2"/>
<TextBlock x:Name="DiDiBasetxt01" Background="White" Foreground="Blue" FontSize="20" Text="中文" Grid.Row="0" Grid.Column="3" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiBaselab10" Text="會員生日 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="1" Grid.Column="0"/>
<TextBlock x:Name="DiDiBasetxt10" Background="White" Foreground="Blue" FontSize="20" Text="0" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiBaselab11" Text="性 別 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="1" Grid.Column="2"/>
<TextBlock x:Name="DiDiBasetxt11" Background="White" Foreground="Blue" FontSize="20" Text="0" Grid.Row="1" Grid.Column="3" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiBaselab21" Text="發票載具 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="2" Grid.Column="0"/>
<TextBlock x:Name="DiDiBasetxt21" Background="White" Foreground="Blue" FontSize="20" Text="" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiBaselab30" Text="會員地址 :" FontSize="16" Foreground="White" HorizontalAlignment="Center" Background="#194a6e" Margin="0,12,0,0" Grid.Row="3" Grid.Column="0"/>
<Grid x:Name="DiDiAddrGrid00" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" Margin="0,0,0,0" ColumnDefinitions="1.3*,0.2*,1.5*">
<TextBlock x:Name="DiDiAddrtxt00" Background="White" Foreground="Blue" FontSize="20" Text="" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="17,12,0,0"/>
<TextBlock x:Name="DiDiAddrtxt01" Background="White" Foreground="Blue" FontSize="20" Text="" Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" Margin="17,12,0,0"/>
</Grid>
<local:CustBtn x:Name="DiDiBaseBtn23" TextColor="White" Background="#194a6e" BorderColor="White" Grid.Row="4" Grid.Column="0" Margin="0,12,0,12"/>
<TextBlock x:Name="DiDiAddrtxt11" Background="White" Foreground="Blue" FontSize="20" Text="" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" Margin="17,12,0,0"/>
<Grid x:Name="DiDiInfosGrid" Grid.Row="5" Grid.Column="0" Margin="40,10,40,0" Grid.RowSpan="2" Grid.ColumnSpan="4" ColumnDefinitions="*,*,*">
<!--ColumnSpacing="60"-->
<Border x:Name="DiDiInfosBorder00" Grid.Row="0" Grid.Column="0" Margin="0,0,60,0"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<TextBlock x:Name="DiDiInfostxt00" Background="#194a6e" Foreground="White" FontSize="20" Text="100" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2,2,2,2"/>
</Border>
<TextBlock x:Name="DiDiInfoslab00" Text="我的點數" FontSize="20" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White" Background="#194a6e" Margin="15,-14,0,0" Grid.Row="3" Grid.Column="0"/>
<Border x:Name="DiDiInfosBorder01" Grid.Row="0" Grid.Column="1" Margin="0,0,60,0"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<TextBlock x:Name="DiDiInfostxt01" Background="#194a6e" Foreground="White" FontSize="20" Text="100" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2,2,2,2"/>
</Border>
<TextBlock x:Name="DiDiInfoslab01" Text="寄庫數量" FontSize="20" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White" Background="#194a6e" Margin="15,-14,0,0" Grid.Row="3" Grid.Column="1"/>
<Border x:Name="DiDiInfosBorder02" Grid.Row="0" Grid.Column="2" Margin="0,0,60,0"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<TextBlock x:Name="DiDiInfostxt02" Background="#194a6e" Foreground="White" FontSize="20" Text="100" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2,2,2,2"/>
</Border>
<TextBlock x:Name="DiDiInfoslab02" Text="優惠券" FontSize="20" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White" Background="#194a6e" Margin="15,-14,0,0" Grid.Row="3" Grid.Column="2"/>
</Grid>
</Grid>
</Border>
<TextBlock Text="會員資訊" FontSize="20" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White" Background="#194a6e" Margin="25,15,0,0" Grid.Row="2" Grid.Column="0"/>
<Border x:Name="DiDiAddrBorder00" Grid.Row="3" Grid.Column="0" Margin="10,40,10,10"
Background="#194a6e" BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="DiDiAddrGrid10" Margin="0,15,0,0" RowDefinitions="*,5*" ColumnDefinitions="0.2*,*,*,*,*,0.2*">
<!--ColumnSpacing="25" RowSpacing="10"-->
<local:CustBtn x:Name="DiDiCreateBtn" Margin="25,10" TextColor="White" Background="#194a6e" BorderColor="White" Grid.Row="0" Grid.Column="1" />
<local:CustBtn x:Name="DiDiModifyBtn" Margin="25,10" TextColor="White" Background="#194a6e" BorderColor="White" Grid.Row="0" Grid.Column="2" />
<local:CustBtn x:Name="DiDiDeleteBtn" Margin="25,10" TextColor="White" Background="#194a6e" BorderColor="White" Grid.Row="0" Grid.Column="3" />
<local:CustBtn x:Name="DiDiLoaderBtn" Margin="25,10" TextColor="White" Background="#194a6e" BorderColor="White" Grid.Row="0" Grid.Column="4" />
<ListBox x:Name="DiDiListBox" ItemsSource="{Binding m_DiDiItems}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="6" Margin="10,0,10,10" SelectionMode="Single"
Background="White" SelectionChanged="DiDiListBox_ItemSelected">
<ListBox.ItemTemplate>
<DataTemplate>
<!-- ListBox 資料結構標準: ListBox.ItemTemplate -> DataTemplate -> ViewCell-->
<Grid Background="{Binding BColor}" ColumnDefinitions="100,*" Margin="8,8,8,8">
<TextBlock Text="{Binding Remark}" FontSize="{Binding Font_Size}" HorizontalAlignment="{Binding NameTextAlignment}" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="0" Margin="0,0,0,0"/>
<TextBlock Text="{Binding FullAddress}" FontSize="{Binding Font_Size}" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="{Binding Font_Color}" Grid.Column="1" Margin="0,0,0,0"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Border>
<TextBlock Text="常用地址" FontSize="20" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White" Background="#194a6e" Margin="25,26,0,0" Grid.Row="3" Grid.Column="0"/>
</Grid>
</Grid><!--ContentGrid-->
</Grid><!--WorkspaceGrid-->
<Border x:Name="StatusBorder" Grid.Row="1" Grid.Column="0"
BorderThickness="1" BorderBrush="White" CornerRadius="5">
<Grid x:Name="StatusGrid" RowDefinitions="*" ColumnDefinitions="0.9*,2*,0.7*,1.1*,0.5*,0.6*,0.5*,2*,0.5*,0.8*,0.9*,1*,1.4*,0.5*" Margin="15,0">
<TextBlock x:Name="Status00TextLable" VerticalAlignment="Center" Text="系統時間" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="0"/>
<TextBlock x:Name="Status00ValueLable" VerticalAlignment="Center" Text="2022-12-15 11:36:13" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="1"/>
<TextBlock x:Name="Status01TextLable" VerticalAlignment="Center" Text="營業日" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="2"/>
<TextBlock x:Name="Status01ValueLable" VerticalAlignment="Center" Text="2022-12-15" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="3"/>
<TextBlock x:Name="Status02TextLable" VerticalAlignment="Center" Text="班別" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="4"/>
<TextBlock x:Name="Status02ValueLable" VerticalAlignment="Center" Text="早班" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="5"/>
<TextBlock x:Name="Status03TextLable" VerticalAlignment="Center" Text="機碼" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="6"/>
<TextBlock x:Name="Status03ValueLable" VerticalAlignment="Center" Text="VT-POS-2022-00002" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="7"/>
<TextBlock x:Name="Status04TextLable" VerticalAlignment="Center" Text="版本" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="8"/>
<TextBlock x:Name="Status04ValueLable" VerticalAlignment="Center" Text="v1.6.4.0" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="9"/>
<TextBlock x:Name="Status05TextLable" VerticalAlignment="Center" Text="網路狀態" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="10"/>
<TextBlock x:Name="Status05ValueLable" VerticalAlignment="Center" Text="ON LINE" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="11"/>
<TextBlock x:Name="Status06TextLable" VerticalAlignment="Center" Text="待上傳筆數" FontSize="18" Foreground="White" Grid.Row="0" Grid.Column="12"/>
<TextBlock x:Name="Status06ValueLable" VerticalAlignment="Center" Text="0" FontSize="18" Foreground="#50c3d1" Grid.Row="0" Grid.Column="13"/>
</Grid>
</Border>
</Grid><!--FullGrid-->
</Window>
CODE
//---
//電子發票資訊區域隱藏(移除)/顯示(插入)
public static bool m_blnInvoiceState = false;//啟用發票參數旗標 && 有發票參數
private void ShowInfoGrid02Show()
{
POS_INVAPI.InitInvParamsVar();//初始化電子發票參數資訊變數函數
m_blnInvoiceState = (SqliteDataAccess.m_terminal_data[0].invoice_active_state == "Y") && (POS_INVAPI.m_InvParams != null) && (POS_INVAPI.m_InvParams.Platform_Code != null) && (POS_INVAPI.m_InvParams.Platform_Code.Length > 0);
if (m_blnInvoiceState)
{
if (!ShowInfoGrid02.IsVisible)
{
ShowInfoGrid02.IsVisible = true;
/*
GridLength height = new GridLength(0.8, GridUnitType.Star);
RowDefinition RowDefinitionBuf = new RowDefinition(height);
ShowInfoGrid.RowDefinitions.Insert(2, RowDefinitionBuf);
*/
GridLength height02 = new GridLength(0.8, GridUnitType.Star);
ShowInfoGrid.RowDefinitions[2].Height = height02;
GridLength height01 = new GridLength(1.2, GridUnitType.Star);
ShowInfoGrid.RowDefinitions[1].Height = height01;
GridLength height00 = new GridLength(1.3, GridUnitType.Star);
ShowInfoGrid.RowDefinitions[0].Height = height00;
ShowInfoGrid.InvalidateMeasure();// 強制更新佈局
}
}
else
{
if (ShowInfoGrid02.IsVisible)
{
ShowInfoGrid02.IsVisible = false;
/*
ShowInfoGrid.RowDefinitions.RemoveAt(2);
*/
GridLength height = new GridLength(0, GridUnitType.Pixel);
ShowInfoGrid.RowDefinitions[2].Height = height;
ShowInfoGrid.InvalidateMeasure();// 強制更新佈局
}
if (SqliteDataAccess.m_terminal_data[0].invoice_active_state == "Y")
{
LogFile.Write($"Invoice Params Error: {JsonClassConvert.inv_params2String(POS_INVAPI.m_InvParams)}");
}
}
}
//---電子發票資訊區域隱藏(移除)/顯示(插入)
One thought on “Avalonia Grid 透過元件高度調整和強制空間重新配置 實現 隱藏列(Hide Row)/顯示列(Show Row) 範例”
Avalonia Grid 透過元件高度調整和強制空間重新配置 實現 隱藏列(Hide Row)/顯示列(Show Row) 範例
元件隱藏