在WPF UI应用程序中,我有4个控件和3个单选按钮(比如写,读和加载)。我也正确对齐它们。
4个控件是:1。带有listview的Tabcontrol 2.带有复选框的Stackpanel 3.带有文本框和浏览按钮的Stackpanel(orientation - Horizantal)4。带有Textblock和Listview的堆栈面板。
我的问题是, 对于加载RadioButton,我应该将所有4个控件垂直堆叠。 (这没有问题,完成了......)
对于Write按钮,控件2和3应该是不可见的,控件1和4应该填充该区域。
ctrl ht
1 150
2 100 3 30
4 200
当我按下写入时,ctrl 2 n 3 shuld变为不可见,ctrl 1高度应为(150 + 75),ctrl 4应为(200 + 55).. 这使得ctrl1下限应该下移到75像素,而ctrl 4上限应该是55像素以上..
请帮我这样做.. 我在这个WPF应用程序中使用XAML和C#
感谢 RAMM
答案 0 :(得分:0)
即使我觉得我的解释令人困惑。我将提供xaml代码..
我添加了所有4个垂直堆叠的控件..对于rdbtn 1,控件3不可用,控件2应该拉伸到下(其上限保持不变但下限应该增加)和控件4(上限应该伸展,下限保持不变..)我的意思是点击rdbtn 1 ..只能看到控制1,3和4并占据整个空间......
希望我现在明确表示:)
Xaml代码:
<StackPanel Orientation="Vertical" Name="stkPnlParent" Background="OldLace" >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="220"/>
<RowDefinition Height="150"/>
<RowDefinition Height="30"/>
<RowDefinition Height="100"/>
<RowDefinition Height="62"/>
</Grid.RowDefinitions>
控制1
<GroupBox Grid.Column="0" Grid.Row="0" Header="Browse Data" Name="grpBxBrowseData" >
<StackPanel Orientation="Horizontal">
<Label Name="lblBrowseData" Content="Path :" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Width="60" Height="30" ></Label>
<TextBox Name="txtBxBrowse" Text="Please enter the path to Browse" HorizontalAlignment="Center" VerticalAlignment="Center" Width="800" Height="30" ></TextBox>
<Button Name="btnBrowseButton" ToolTip="Browse for Path" HorizontalAlignment="Right" VerticalAlignment="Center" Width="90" Height="30" Margin="30,0,0,0">Browse</Button>
</StackPanel>
</GroupBox>
控制2
<TabControl Grid.Column="0" Grid.Row="1" Name="tbCtrlLaunchInfo" VerticalAlignment="Top" >
<TabItem Name ="tbLaunchInfo" HorizontalAlignment="Left" >
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<Label>Launch Informations</Label>
</StackPanel>
</TabItem.Header>
<!--<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Width="Auto">-->
<Grid Name="grdLaunchDetails" Height="200" Width="Auto" HorizontalAlignment="Left" VerticalAlignment="Top">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
<ColumnDefinition Width="660"></ColumnDefinition>
<ColumnDefinition Width="178"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
<ListView Name="lstviewOfOwners" HorizontalAlignment="Left" >
<ListView.View >
<GridView >
<GridViewColumn Header="WorkBook" Width="200" DisplayMemberBinding="{Binding AnyWorkbook}" />
<GridViewColumn Header="Description" Width="660" DisplayMemberBinding="{Binding DescName}" />
<GridViewColumn Header="Date" Width="178" DisplayMemberBinding="{Binding WorkbookDate}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
<!--</ScrollViewer>-->
</TabItem>
</TabControl>
控制3
<Border Grid.Column="0" Grid.Row="2" Name="brdrTWB" BorderThickness="3" BorderBrush="Brown">
<StackPanel Name="stkPnlCheckBoxes" Orientation="Vertical">
<TextBlock Name="txtBlkChekBox" Background="LightBlue" Height="25" Text="Team Work Book" ></TextBlock>
<CheckBox HorizontalAlignment="Left" Width="90" Height="25" Margin="10,0,0,5" >Select All</CheckBox>
<StackPanel Orientation="Horizontal" Height="20" >
<CheckBox Margin="10,0,0,0" Height="13.34" HorizontalAlignment="Left" Width="120" >Team Relative Effort</CheckBox>
</StackPanel>
</StackPanel>
</Border>
控制4
<StackPanel Name="stkPnlLogWindow" Grid.Column="0" Grid.Row="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Height="25" Background="Honeydew">Team Work Book</TextBlock>
<ListView Grid.Column="0" Grid.Row="1" Name="lstviewLogWindow" Height="75" >
<ListView.View >
<GridView >
<GridViewColumn Header="Date/Time" Width="200" DisplayMemberBinding="{Binding LogWBDateTime}" />
<GridViewColumn Header="Log Details" Width="850" DisplayMemberBinding="{Binding LogWBDetails}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
</StackPanel> </Grid>
答案 1 :(得分:0)
private void btnwriteData_Checked(object sender, RoutedEventArgs e)
{
UpdateReadDataControlVisibility(
(bool)btnReadData.IsChecked ? Visibility.Visible : Visibility.Hidden);
UpdateWriteDataControlVisibility(
(bool)btnReadData.IsChecked ? Visibility.Hidden : Visibility.Visible);
lblUploadData.Content = " Upload to:";
DisableDestinationGridVisibility(
(bool)btnwriteData.IsChecked ? Visibility.Hidden : Visibility.Visible);
DisableTeamWBCheckBoxOptions(
(bool)btnwriteData.IsChecked ? Visibility.Hidden : Visibility.Visible);
ResizeGridLogWindow(
(bool)btnwriteData.IsChecked ? lstviewLogWindow.Height = 150 : lstviewLogWindow.Height = 75,
(bool)btnwriteData.IsChecked ? stkPnlLogWindow.Height = 175 : stkPnlLogWindow.Height = 100);
btnUpload.Visibility = Visibility.Visible;
ResizeLaunchInformationWindow(
(bool)btnwriteData.IsChecked ? tbCtrlLaunchInfo.Height = 295 : tbCtrlLaunchInfo.Height = 220,
(bool)btnwriteData.IsChecked ? lstviewOfOwners.Height = 275 : lstviewOfOwners.Height = 200,
(bool)btnwriteData.IsChecked ? grdLaunchDetails.Height = 275 : grdLaunchDetails.Height = 200
);}
叫做func的
private void UpdateWriteDataControlVisibility(Visibility visibility)
{
// grdBrowse.Visibility = visibility;
grpBxBrowseData.Visibility = visibility;
//btnBrowseButton.Visibility = visibility;
//txtBxBrowseTB.Visibility = visibility;
//label1.Visibility = visibility;
//grpBrowseData.Visibility = visibility;
}
private void UpdateReadDataControlVisibility(Visibility visibility)
{
grpBxSelectProject.Visibility = visibility;
// grdSelectProject.Visibility = visibility;
//label2.Visibility = visibility;
//comboBoxProject.Visibility = visibility;
//grpBxLogWindow.Height = 240;
//grdLogWindow.Height = 230;
}
private void DisableDestinationGridVisibility(Visibility visibility)
{
stkPnlUpload.Visibility = visibility;
}
private void DisableTeamWBCheckBoxOptions(Visibility visibility)
{
brdrTWB.Visibility = visibility;
//brdrTWB.Visibility = visibility;
//txtBlkTWB.Visibility = visibility;
//stkPnlTWB.Visibility = visibility;
//stkpnlFirstRow.Visibility = visibility;
}
private void ResizeGridLogWindow(double lstViewHeight, double stkPnlHeight )
{
lstviewLogWindow.Height = lstViewHeight;
stkPnlLogWindow.Height = stkPnlHeight;
}
private void ResizeLaunchInformationWindow(double tabHeight, double lstViewHeight, double grdHeight)
{
tbCtrlLaunchInfo.Height = tabHeight;
lstviewOfOwners.Height = lstViewHeight;
grdLaunchDetails.Height = grdHeight;
}
** EOM **
由于 RAMM