¿Cómo ocultar la barra de título en la ventana de cinta WPF (Aero habilitado) sin un cuadro de control oculto?

StackOverflow https://stackoverflow.com/questions/6825139

Pregunta

Actualmente uso la ventana de cinta WPF y habilito Aero en la ventana actual como la siguiente foto. Me gusta ocultar el título que es "Pattern Tester" porque no hay suficiente espacio para mostrarlo. Pero yo todavia Necesita un cuadro de control original de Windows y el título actual (incluso se ocultará) que se mostrará en el administrador de tareas y en otro programa ralatizado como el conmutador de tareas y la barra de tareas.

WPF Ribbon Window

¿Fue útil?

Solución

Accidentalmente encontré la respuesta para esta pregunta cuando leo y descargo el código fuente en el hilo sobre Texto de la barra de título de WPF apenas legible en Ribbonwindow. La forma más fácil de resolver este problema es solo el control del panel de título de la cinta oculta a través del diccionario de recursos de aplicación.

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
            xmlns:ribbonPre="clr-namespace:Microsoft.Windows.Controls.Ribbon.Primitives;assembly=RibbonControlsLibrary">
    <Style TargetType="{x:Type ribbonPre:RibbonTitlePanel}">
        <Setter Property="Visibility" Value="Hidden"/>
    </Style>
 </ResourceDictionary>

enter image description here

Sin embargo, la pestaña contextual de cinta también está oculta. Para solucionar este error, debo establecer el contenido del presentador de contenido del panel de título de la cinta en una cadena vacía cuando se carga la ventana actual.

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    var titlePanel = Ribbon.Template.FindName("PART_TitleHost", Ribbon) as ContentPresenter;
    if (titlePanel != null)
    {
        titlePanel.Content = "";
    }
}

enter image description here

La pregunta restante, no sé por qué no puedo el siguiente estilo en lugar decode en el evento de Onload de ventana.

<Style TargetType="{x:Type ribbonPre:RibbonTitlePanel}">
    <Setter Property="ContentPresenter.Content" Value=""/>
</Style>

Otros consejos

En el evento de carga de la ventana, agregue la siguiente línea:

((System.windows.uielement) ((system.windows.frameworkelement) (this.ribbonmain.template.findname ("Parte_titlehost", this.RibbonMain) como contenido presente) .Parent) .Parent) .visibility = Visibility.Collapsed;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top