WPF - 在使用窗口样式的情况下显示Grid的特定数据

时间:2017-11-09 15:12:42

标签: wpf xaml

我为所有窗口提供了一种窗口样式: 这是我在app.xaml上添加的内容

<Style x:Key="Style.Window.Default" TargetType="Window">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Window">
                <Grid Background="{TemplateBinding Background}">
                    <Grid Name="gridBar" Height="40" VerticalAlignment="Top" Margin="1,0,1,0">
                        <Grid.Background>

                            <LinearGradientBrush StartPoint="0, 0" EndPoint="0, 1" Opacity=".1">
                                <GradientStop Offset="0" Color="{DynamicResource AccentColor}" />
                                <GradientStop Offset=".3" Color="{DynamicResource AccentColor}" />
                                <GradientStop Offset="1" Color="Transparent" />
                            </LinearGradientBrush>
                        </Grid.Background>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>


                        <!-- title -->
                        <ItemsControl Background="Transparent" MouseDoubleClick="MaximizeClick"  >
                            <TextBlock Text="{TemplateBinding Title}" Margin="8,8,8,0" x:Name="txtTitle"
                                    Style="{StaticResource ModernWindowTitle}"
                                      />
                        </ItemsControl>
                    </Grid>
                    <Grid VerticalAlignment="top"   Margin="0,40,0,0" Background="White">

                    </Grid>
                </Grid>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

以下是我在每个窗口上的内容:

<Window x:Class="WpfApplication1.MainWindow1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Height="300" Width="300"  Title="title"
         Style="{StaticResource Style.Window.Default}" >
    <Grid>
        <TextBlock Text="text of window 1"></TextBlock>
    </Grid>
</Window>

如何更改我的代码以显示或显示网格数据,因为它没有显示网格数据

1 个答案:

答案 0 :(得分:1)

使用内容展示器在ControlTemplate中插入内容。你永远不会说你希望内容出现在哪里,但是这个顶部对齐的网格是空的,所以也许那就在哪里?

                    <!-- title -->
                    <ItemsControl Background="Transparent" MouseDoubleClick="MaximizeClick"  >
                        <TextBlock Text="{TemplateBinding Title}" Margin="8,8,8,0" x:Name="txtTitle"
                                Style="{StaticResource ModernWindowTitle}"
                                  />
                    </ItemsControl>

我有一个问题:ItemsControl的目的是什么?

 window.requestAnimationFrame(print);

另一个问题:为什么在网格中定义四列并且从不使用它们中的任何一列?那些列是什么?