Настройка элементов управления макетом WPF - PullRequest
0 голосов
/ 30 июля 2009

В приложении WPF UI у меня есть 4 элемента управления и 3 переключателя (скажем, запись, чтение и загрузка). Я тоже правильно их выровнял.

4 элемента управления: 1. Tabcontrol со списком в нем 2. Stackpanel с флажками 3. Stackpanel (ориентация - Horizantal) с текстовым полем и кнопкой просмотра 4. 4. Stackpanel с Textblock и Listview.

Мой вопрос для загрузки RadioButton у меня должны быть все 4 элемента управления, расположенные вертикально. (это не проблема, это сделано ..)

для кнопки «Запись» элементы управления 2 и 3 должны быть невидимы, а элементы управления 1 и 4 должны заполнять эту область.

ctrl ht
1 150
2 100 3 30
4 200

Когда я нажимаю «запись», Ctrl 2 n 3 должен стать невидимым, а высота Ctrl 1 должна быть (150 + 75), а Ctrl 4 должна быть (200 + 55). что делает нижний предел ctrl1 должен сместиться до 75 пикселей, а верхний предел ctrl 4 должен быть на 55 пикселей выше ..

пожалуйста, помогите мне в этом .. Я использую XAML и C # для этого приложения WPF

спасибо Рамм

Ответы [ 2 ]

0 голосов
/ 30 июля 2009
  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's

  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 **

Спасибо Рамм

0 голосов
/ 30 июля 2009

Даже я чувствовал, что мои объяснения сбивают с толку. Я предоставлю код 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...