2011-04-07 14 views
5

Creé una ventana simple y le apliqué estilo. Ahora, cuando corro aplicación de fondo es negro: enter image description hereFondo negro de ventana de WPF

En XAML se ve normal: enter image description here

qué está causando esto?

Aquí es el código XAML:

<Window SizeToContent="WidthAndHeight" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        x:Class="WPFTest.MainWindow"> 
    <Window.Style> 
     <Style TargetType="Window"> 
      <Setter Property="Control.Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Window"> 
         <Grid Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="*" /> 
           <RowDefinition Height="Auto" /> 
          </Grid.RowDefinitions> 

          <Grid Grid.Row="0"> 
           <ContentPresenter /> 
          </Grid> 
          <StatusBar Name="statusBar1" Height="23" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Row="1" /> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Style> 
    <Grid> 
     <Grid Height="114" HorizontalAlignment="Center" Margin="1,0,557,622" Name="grid" VerticalAlignment="Bottom" Width="466"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="100*" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="25*" /> 
       <RowDefinition Height="25*" /> 
       <RowDefinition Height="25*" /> 
       <RowDefinition Height="25*" /> 
      </Grid.RowDefinitions> 
      <Label Content="Label4" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="3,0,3,0" MinHeight="16" MinWidth="97" Name="xResourceLabel4" VerticalAlignment="Bottom" /> 
      <Label Content="Label1" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3,0,3,0" MinHeight="16" MinWidth="98" Name="xResourceLabel1" VerticalAlignment="Bottom" /> 
      <Label Content="Label2" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="3,0,3,0" MinHeight="16" MinWidth="114" Name="xResourceLabel2" VerticalAlignment="Bottom" /> 
      <Label Content="Label3" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="3,0,3,0" MinHeight="16" MinWidth="80" Name="xResourceLabel3" VerticalAlignment="Bottom" /> 
      <TextBox Background="#FFFFFF99" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="120,0,189,0" MinHeight="23" MinWidth="157" Name="tbREGNR" VerticalAlignment="Bottom" /> 
      <TextBox Background="#FFFFFF99" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" Margin="0,0,189,0" MinHeight="23" MinWidth="157" Name="tbFaFabnr" VerticalAlignment="Bottom" /> 
      <ComboBox Background="#FFFFFF99" DisplayMemberPath="" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center" Margin="0,0,189,0" MinHeight="24" MinWidth="157" Name="cb" SelectedValuePath="" VerticalAlignment="Bottom" /> 
      <TextBox Background="#FFFF99CC" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center" Margin="0,0,175,0" MinHeight="23" MinWidth="171" Name="tbComp" VerticalAlignment="Bottom" /> 
     </Grid> 
    </Grid> 
</Window> 

Respuesta

6
<Grid Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="*" /> 
          <RowDefinition Height="Auto" /> 
         </Grid.RowDefinitions> 
         <Grid Grid.Row="0"> 
          <ContentPresenter /> 
         </Grid> 
         <StatusBar Name="statusBar1" Height="23" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Row="1" /> 
         </Grid> 

Debido a que está sustituyendo la plantilla por defecto de la ventana se le está quitando los efectos de estilo (de los cuales uno es de fondo = negro en la parrilla de la raíz)

ver más arriba, lo he puesto en la plantilla y ahora debería funcionar (fondo = "White")

a continuación se muestra la plantilla por defecto para una ventana (tomado de Mezcla)

<ControlTemplate x:Key="WindowTemplateKey" TargetType="{x:Type Window}"> 
     <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> 
      <Grid> 
       <AdornerDecorator> 
        <ContentPresenter/> 
       </AdornerDecorator> 
       <ResizeGrip x:Name="WindowResizeGrip" HorizontalAlignment="Right" IsTabStop="false" Visibility="Collapsed" VerticalAlignment="Bottom"/> 
      </Grid> 
     </Border> 
     <ControlTemplate.Triggers> 
      <MultiTrigger> 
       <MultiTrigger.Conditions> 
        <Condition Property="ResizeMode" Value="CanResizeWithGrip"/> 
        <Condition Property="WindowState" Value="Normal"/> 
       </MultiTrigger.Conditions> 
       <Setter Property="Visibility" TargetName="WindowResizeGrip" Value="Visible"/> 
      </MultiTrigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
    <Style x:Key="WindowStyle1" TargetType="{x:Type Window}"> 
     <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/> 
     <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Window}"> 
        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> 
         <AdornerDecorator> 
          <ContentPresenter/> 
         </AdornerDecorator> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="ResizeMode" Value="CanResizeWithGrip"> 
       <Setter Property="Template" Value="{StaticResource WindowTemplateKey}"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
+0

Eso resolvió el fondo de la cuadrícula, pero si configuro el fondo de la ventana en blanco, ¡todavía está en negro! – Vale

+0

Esta línea se ve interesante '' pero qué hacer con ella, ¿podría reemplazarla o algo así? – Vale

+0

Aquí es donde establece el fondo de la ventana, pero debido a que LayoutRoot Grid está configurado para estirarse, no debe ver ningún fondo de la ventana que sea más –

Cuestiones relacionadas