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

时间:2018-11-05 04:39:45

标签: c# wpf

这是我的主窗口代码,它具有一个浏览按钮,并且该按钮也显示在用户控件上,但是我不想在用户控件中显示该按钮和该按钮所占用的空间

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

此图片是我的主窗口

这是我的用户控制代码

<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

要获得类似于图像3.I的输出该怎么做,要删除该蓝色的浏览按钮,并且该窗口的用户控件已占用空间。 用户控件仅接受用户控件而不是主窗口的控件。 在用户控制窗口上打开时,它只能显示用户控制控件,而不能显示主窗口控件。

2 个答案:

答案 0 :(得分:0)

也许您应该从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>

如果否,则可以为<RowDefinition Height="50"/>设置0

答案 1 :(得分:0)

您可以禁用浏览主菜单xaml页面的单击事件(browse_Click)的可见性,如下所示

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