简体   繁体   English

如何从父窗口中删除主窗口的控件

[英]How to remove control of main window from parent window

This is my main window code it has one browse button and this button also display on user control but I don't want to show that button and space taken by that button in user control 这是我的主窗口代码,它具有一个浏览按钮,并且该按钮也显示在用户控件上,但是我不想在用户控件中显示该按钮和该按钮所占用的空间

<Window x:Class="Take_Out_Info.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Take Out Info" Height="auto" Width="auto" 
        Closing="Window_Closing" WindowState="Maximized">
    <Window.Resources>
        <Style x:Key="menuitem" TargetType="MenuItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type MenuItem}">
                        <Border x:Name="Bd" Padding="17,0,17,0" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True" Uid="Border_38">
                            <ContentPresenter x:Name="ContentPresenter"  Content="{TemplateBinding Header}" Grid.Column="1" ContentSource="Header" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Uid="ContentPresenter_33"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Opacity" Value="0.8"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <Grid Background="#b5d2fc">
        <Grid.RowDefinitions>
            <RowDefinition  Height="50"/>
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <Grid  Grid.Row="0" >
            <Menu Name="browsemenu" DockPanel.Dock="Top" Opacity="1" Height="50" Background="#1389e4"  >
                <MenuItem x:Name="browse" Width="140" Margin="10,10,10,10" HorizontalAlignment="Center" Style="{StaticResource menuitem}" Click="browse_Click" Height="30"  Background="white" BorderThickness="2" BorderBrush="black">
                    <MenuItem.Header>
                        <TextBlock  Width="90" TextAlignment="Center" VerticalAlignment="CENTER" Foreground="#1389e4"  FontWeight="Bold"  HorizontalAlignment="Center" FontSize="15" ><Run Text="Browse"/></TextBlock>
                    </MenuItem.Header>
                </MenuItem>                    
            </Menu>
        </Grid>
        <Grid Grid.Row="1" >
            <ContentControl x:Name="DetailsControl" Margin="0" HorizontalAlignment="Left"    VerticalAlignment="Top" />
        </Grid>
    </Grid>    
</Window>

this image is my main window 此图片是我的主窗口

This is my user control code 这是我的用户控制代码

<UserControl x:Class="Take_Out_Info.BrowseFile"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:adorners="http://gu.se/Adorners" 
             Height="auto" Width="auto">

    <Grid Background="#b5d2fc">
        <Grid.RowDefinitions>
            <RowDefinition  Height="40"/>
            <RowDefinition  Height="50"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <Grid   Width="auto" Background="#1389e4">
            <Button Grid.Row="0" Content="Browse" Name="btnBrowse" Click="btnBrowse_Click" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0" Height="27" Width="140" Background="White" FontSize="15" BorderThickness="2" BorderBrush="Black" />
            <Button Grid.Row="0" Content="Search" Name="btnSearch" Click="btnSearch_Click" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="190,0,0,0" Height="27" Width="140" Background="White" FontSize="15" BorderThickness="2" BorderBrush="Black" />
            <Button Grid.Row="0" Content="Reset" Name="btnReset" Click="btnReset_Click" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="370,0,0,0" Height="27" Width="140" Background="White" FontSize="15" BorderThickness="2" BorderBrush="Black" />
            <ContentControl x:Name="DetailsControl" VerticalAlignment="Top" HorizontalAlignment="Left" Width="0" />
        </Grid>

        <Grid Grid.Row="1" Width="auto">
            <Grid.RowDefinitions>
                <RowDefinition  Height="40"/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <TextBox Name="txtDayfind" adorners:Watermark.Text="Search Day Here" Grid.Row="1" Grid.Column="0" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnDayfind" Grid.Row="1" Grid.Column="0" Margin="110,0,0,0" Height="24" Width="24" Click="btnDayfind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnDayReset" Grid.Row="1" Grid.Column="0" Margin="157,0,0,0" Height="24" Width="24" Click="btnDayReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtDatefind" adorners:Watermark.Text="Search Date Here" Grid.Row="0" Grid.Column="1" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnDatefind" Grid.Row="0" Grid.Column="1" Margin="121,0,0,0" Height="24" Width="24" Click="btnDatefind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnDateReset" Grid.Row="0" Grid.Column="1" Margin="170,0,0,0" Height="24" Width="24" Click="btnDateReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtTimefind" adorners:Watermark.Text="Search Time Here" Grid.Row="0" Grid.Column="2" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnTimefind" Grid.Row="0" Grid.Column="2" Margin="121,0,0,0" Height="24" Width="24" Click="btnTimefind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnTimeReset" Grid.Row="0" Grid.Column="2" Margin="170,0,0,0" Height="24" Width="24" Click="btnTimeReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtLatfind" adorners:Watermark.Text="Search Lat Here" Grid.Row="0" Grid.Column="3" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnLatfind" Grid.Row="0" Grid.Column="3" Margin="121,0,0,0" Height="24" Width="24" Click="btnLatfind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnLatReset" Grid.Row="0" Grid.Column="3" Margin="170,0,0,0" Height="24" Width="24" Click="btnLatReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtLongfind" adorners:Watermark.Text="Search Long Here" Grid.Row="0" Grid.Column="4" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnLongfind" Grid.Row="0" Grid.Column="4" Margin="121,0,0,0" Height="24" Width="24" Click="btnLongfind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnLongReset" Grid.Row="0" Grid.Column="4" Margin="170,0,0,0" Height="24" Width="24" Click="btnLongReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtAddressfind" adorners:Watermark.Text="Search Address Here" Grid.Row="0" Grid.Column="5" Margin="-15,0,0,0" Height="24" Width="120"/>
            <Button Name="btnAddressfind" Grid.Row="0" Grid.Column="5" Margin="121,0,0,0" Height="24" Width="24" Click="btnAddressfind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnAddressReset" Grid.Row="0" Grid.Column="5" Margin="170,0,0,0" Height="24" Width="24" Click="btnAddressReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

            <TextBox Name="txtTypefind" adorners:Watermark.Text="Search Type Here" Grid.Row="0" Grid.Column="6" Margin="-10,0,0,0" Height="24" Width="120"/>
            <Button Name="btnTypefind" Grid.Row="0" Grid.Column="6" Margin="121,0,0,0" Height="24" Width="24" Click="btnTypefind_Click">
                <Image Source="002-search.png"></Image>
            </Button>
            <Button Name="btnTypeReset" Grid.Row="0" Grid.Column="6" Margin="170,0,0,0" Height="24" Width="24" Click="btnTypeReset_Click">
                <Image Source="001-multiply.png"></Image>
            </Button>

        </Grid>

        <TabControl  x:Name="tabControl1" Grid.Row="2" Grid.Column="1" Height="auto" Width="auto" ItemsSource="{Binding tabs}" SelectedItem="{Binding SelectedEvaluation}" TabStripPlacement="Top" >
            <TabControl.ContentTemplate >
                <DataTemplate>
                    <DataGrid x:Name="dataGrid1" Height="auto" Width="auto" ItemsSource="{Binding}" AutoGenerateColumns="False" >
                        <DataGrid.Columns>
                            <DataGridTextColumn Width="*" Header="Day"  Binding="{Binding [Day]}"/>
                            <DataGridTextColumn Width="*" Header="Date" Binding="{Binding [Date]}"/>
                            <DataGridTextColumn Width="*" Header="Time" Binding="{Binding [Time]}"/>
                            <DataGridTextColumn Width="*" Header="Lat" Binding="{Binding [Lat]}"/>
                            <DataGridTextColumn Width="*" Header="Long" Binding="{Binding [Long]}"/>
                            <DataGridTextColumn Width="*" Header="Address" Binding="{Binding [Address]}"/>
                            <DataGridTextColumn Width="*" Header="Type" Binding="{Binding [Type]}"/>
                        </DataGrid.Columns>
                    </DataGrid>
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>
    </Grid>
</UserControl>

3

What to do for getting output like image 3.I to want to remove that browse button which is in blue color and also space has taken on user control for that window. 要获得像图像3.I这样的输出该怎么做,要删除该蓝色的浏览按钮,并且该窗口的用户控件上也留有空间。 User control takes the only controls of user control and not of the main window. 用户控件仅接受用户控件而不是主窗口的控件。 It can only show user-control controls and not of main windows control when opening on user control window. 在用户控制窗口上打开时,它只能显示用户控制控件,而不能显示主窗口控件。

Maybe you should remove this below Grid from XAML source: 也许您应该从XAML源中的Grid下面删除它:

<Grid Background="#b5d2fc">
<Grid.RowDefinitions>
<RowDefinition  Height="50"/>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid  Grid.Row="0" >
<Menu Name="browsemenu" DockPanel.Dock="Top" Opacity="1" Height="50" Background="#1389e4"  >
<MenuItem x:Name="browse" Width="140" Margin="10,10,10,10" HorizontalAlignment="Center" Style="{StaticResource menuitem}" Click="browse_Click" Height="30"  Background="white" BorderThickness="2" BorderBrush="black">
<MenuItem.Header>
<TextBlock  Width="90" TextAlignment="Center"  VerticalAlignment="CENTER" Foreground="#1389e4"  FontWeight="Bold"  HorizontalAlignment="Center" FontSize="15" ><Run Text="Browse"/></TextBlock>
</MenuItem.Header>
</MenuItem>
</Menu>
</Grid>
<Grid Grid.Row="1" >
<ContentControl x:Name="DetailsControl" Margin="0" HorizontalAlignment="Left"    VerticalAlignment="Top" />
</Grid>
</Grid>

If No , You can set 0 for <RowDefinition Height="50"/> 如果否,则可以将<RowDefinition Height="50"/>设置为0。

You can disable visibility of browse MenuItem's on click event(browse_Click) of mainwindow xaml page like below 您可以禁用主菜单xaml页面的单击事件(browse_Click)浏览MenuItem的可见性,如下所示

private void browse_Click(object sender, RoutedEventArgs e)
{
browse.Visibility = Visibility.Collapsed;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM