每个模板都可以放在window.resources部分吗?

时间:2011-03-31 14:45:00

标签: wpf templates xaml

我想知道一些事情:如果你在一个控件下创建一个模板(比如datagrid),你能不能把你所做的一切都放在window.resources下面?举个例子:

<Grid Background="DarkGray">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="20" />
    </Grid.RowDefinitions>
    <DataGrid Name="dgFruit" ItemsSource="{Binding}" AutoGenerateColumns="false" ItemTemplate="{StaticResource datagrid}" >
        <DataGrid.RowHeaderStyle>
            <Style TargetType="DataGridRowHeader">
                <Setter Property="Content" Value="{Binding Path=Number}" />
            </Style>
        </DataGrid.RowHeaderStyle>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=Name}" Header="Name"/>
            <DataGridTextColumn Binding="{Binding Path=Color}" Header="Color"/>
            <DataGridCheckBoxColumn Binding="{Binding Path=Mjummy}" Header="Mjummy"/>
            <DataGridTextColumn Binding="{Binding Path=Number}" Header="Number"/>
            <DataGridTextColumn Binding="{Binding Path=Pits.Count}" Header="Pits"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

您可以制作从<DataGrid.RowHeaderStyle></DataGrid.Columns>的所有内容的数据表吗?如果是这样,你能说出来吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

这不是我放在模板中的东西,而是一种风格,是的,这种风格可以放在资源中。

答案 1 :(得分:1)

了解WPF如何查找资源非常重要。当它试图找到资源时,它首先查找当前对象的资源字典。如果找不到资源,则查找其容器的资源字典。它以递归方式执行此操作,直到它到达没有容器的对象(即窗口),在这种情况下,它查找应用程序的资源字典,然后,最后,放弃并告诉您无法找到资源