简体   繁体   English

隐藏RadWindow的“ TitleBar”

[英]Hide 'TitleBar' of RadWindow

I am working with telerik WPF controls to create desktop appln. 我正在使用telerik WPF控件来创建桌面appln。

I want to make Radwindow looks like a UserControl (without min, max, close buttons and title) and later load this as a content in RadPane . 我想使Radwindow看起来像UserControl (没有最小,最大,关闭按钮和标题),然后将其作为内容加载到RadPane中

If I create my view as UserControl , I can set that as content in RadPane . 如果我将视图创建为UserControl ,则可以将其设置为RadPane中的内容。

I can do same with RadWindow ie setting it as a content in RadPane but problem is I can still see Header, Close buttons 我可以对RadWindow进行同样的操作, 即将其设置为RadPane中的内容,但是问题是我仍然可以看到Header,Close按钮

How to hide 'Title bar ' of RadWindow ? 如何隐藏RadWindow的 “标题栏 ”?

在此处输入图片说明

You should create one UserControl and use it in RadWindow and RadPane . 您应该创建一个UserControl并在RadWindowRadPane使用它。

<UserControl x:Class="Q52017840.MyUserCotnrol"
             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:Q52017840"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <Grid>
        <TextBlock Text="My user control" />
    </Grid>
</UserControl>

If you created UserControl with name MyUserControl you can use it eg in this way: 如果使用名称MyUserControl创建了UserControl ,则可以通过以下方式使用它:

RadWindow radWindow = new RadWindow();
radWindow.Width = 400;
radWindow.Height = 300;
radWindow.Content = new MyUserCotnrol();

RadPane radPane1 = new RadPane();
radPane1.Header = "Document 1";
radPane1.Content = new MyUserCotnrol();

You can do this with that trick. 您可以使用该技巧来做到这一点。

    private void HideHeader()
    {
        var myWindow = new RadWindow();
        var header = FindVisualChildren<Grid>(myWindow).FirstOrDefault(elem => elem.Name == "Header");
        if (header != null)
            header.Visibility = Visibility.Collapsed;
    }

    private static IEnumerable<T> FindVisualChildren<T>(DependencyObject parent)
        where T : DependencyObject
    {
        var childrenCount = VisualTreeHelper.GetChildrenCount(parent);
        for (var i = 0; i < childrenCount; i++)
        {
            var child = VisualTreeHelper.GetChild(parent, i);

            if (child is T children)
                yield return children;

            foreach (var other in FindVisualChildren<T>(child))
                yield return other;
        }
    }

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

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