[英]Hide 'TitleBar' of RadWindow
我正在使用telerik WPF控件來創建桌面appln。
我想使Radwindow看起來像UserControl (沒有最小,最大,關閉按鈕和標題),然后將其作為內容加載到RadPane中 。
如果我將視圖創建為UserControl ,則可以將其設置為RadPane中的內容。
我可以對RadWindow進行同樣的操作, 即將其設置為RadPane中的內容,但是問題是我仍然可以看到Header,Close按鈕
如何隱藏RadWindow的 “標題欄 ”?
您應該創建一個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>
如果使用名稱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();
您可以使用該技巧來做到這一點。
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.