我在网格的最后一行有一个DataGrid。当DataGrid有很多行时,其高度会超出我的UserControl的底部。我正在尝试将DataGrid(或Grid)的底部与UserControl的底部对齐,并在调整窗口大小时使其保持对齐。 VerticalScrollBar仍与UserControl的右侧完全对齐,但HorizontalScrollBar则没有。
我尝试将容器从网格替换为DockPanel和StackPanel,但是没有运气。此时,我已经尝试了数十种不同的配置,但没有一个起作用。
ask init
隐藏代码:
<reactiveui:ReactiveUserControl
x:Class="MyNamespace.Views.MyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MyNamespace.Views"
xmlns:reactiveui="http://reactiveui.net"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:viewmodels="clr-namespace:MyNamespace.ViewModels"
xmlns:models="clr-namespace:MyNamespace.Models"
mc:Ignorable="d"
x:TypeArguments="viewmodels:MyViewModel"
d:DesignHeight="450" d:DesignWidth="800">
<Grid Margin="16 16 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<DataGrid Name="ExcelData"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
Grid.Row="2"
AutoGeneratedColumns="ExcelData_AutoGeneratedColumns">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource MaterialDesignDataGridCell}">
<Setter Property="Padding" Value="16"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
</Grid>
</reactiveui:ReactiveUserControl>
除非使用Height =“”将高度锁定为特定值,否则DataGrid高度将增加到我拥有的行数。
这是底部的样子:
在将窗口高度调整为大于DataGrid的高度之后,HorizontalScrollBar似乎可以正确地将其自身附加到底部:
答案 0 :(得分:0)
尝试一下:
SPI_HandleTypeDef hspi1;
SPI_HandleTypeDef hspi2;
SPI_HandleTypeDef hspi3;
TIM_HandleTypeDef htim3;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USB_OTG_FS_USB_Init(void);
static void MX_SPI1_Init(void);
static void MX_SPI2_Init(void);
static void MX_SPI3_Init(void);
static void MX_TIM3_Init(void);
uint8_t received_data[3],Data_to_send[3];
int main(void)
{
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_SPI1_Init();
MX_SPI2_Init();
MX_SPI3_Init();
MX_TIM3_Init();
while(1)
{
HAL_GPIO_WritePin(SPI3_Chip_Select_DAC_GPIO_Port,SPI3_Chip_Select_DAC_Pin,GPIO_PIN_RESET);
HAL_Delay(1);
Data_for_try[0]=0xC0;
HAL_SPI_TransmitReceive(&hspi3,Data_to_send,received_data,3,100);
HAL_Delay(1);
HAL_GPIO_WritePin(SPI3_Chip_Select_DAC_GPIO_Port,SPI3_Chip_Select_DAC_Pin,GPIO_PIN_SET);
}
}
我从<Grid Margin="16 16 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition />
</Grid.RowDefinitions>
<DataGrid Name="ExcelData"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
Grid.Row="2"
AutoGeneratedColumns="ExcelData_AutoGeneratedColumns">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource MaterialDesignDataGridCell}">
<Setter Property="Padding" Value="16"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
</Grid>
删除了ScrollViewer
和FrozenColumnCount
属性。
输出: