Скрыть 'TitleBar' в RadWindow - PullRequest
0 голосов
/ 25 августа 2018

Я работаю с элементами управления telerik WPF для создания приложений на рабочем столе.

Я хочу сделать Radwindow , похожим на UserControl (без кнопок min, max, closeи заголовок), а затем загрузить его как содержимое в RadPane .

Если я создаю свое представление как UserControl , я могу установить его в качестве содержимого в RadPane.

Я могу сделать то же самое с RadWindow , т. Е. Установить его в качестве содержимого в RadPane , но проблема в том, что я все еще вижу кнопки Заголовок, Закрыть

Как скрыть 'Строка заголовка ' из RadWindow ?

enter image description here

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы можете сделать это с помощью этого трюка.

    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;
        }
    }
0 голосов
/ 26 августа 2018

Вы должны создать один UserControl и использовать его в RadWindow и RadPane.

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

Если вы создали UserControl с именем MyUserControl, вы можете использовать его, например. таким образом:

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();
...