WPF应用程序中的窗口和本地资源冲突

时间:2012-02-09 05:58:30

标签: wpf templates styles themes

在编写WPF应用程序时,我使用了ListView并将模板定义为该级别的资源:

<ListView IsSynchronizedWithCurrentItem="true" ItemTemplate="{StaticResource CardViewTemplate}">
    <!--ItemTemplate="{StaticResource CardViewTemplate}" -->
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel></WrapPanel>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.Resources>
        <DataTemplate x:Key="CardViewTemplate">
            <GroupBox Header="{Binding Path=Product Name}" Width="290" BorderThickness="4" FontSize="14"
                    FontStyle="Normal" Padding="10" BorderBrush="DarkBlue" Background="{x:Null}" Margin="12"
                    UseLayoutRounding="True">
                <StackPanel Name="stackPanel1">
                    <WrapPanel Orientation="Vertical" Name="wrapPanel1">
                        <WrapPanel Orientation="Horizontal">
                            <TextBlock MinWidth="80" Text="{Binding Path=Product
                                                             Name}" FontSize="16" FontWeight="Bold"
                                    TextAlignment="Center" />
                        </WrapPanel>
            </GroupBox>
        </DataTemplate>
    </ListView.Resources>
</ListView>

这很有效但是当我在Window Level使用Resource(Expression Dark)时,ListView显示为空白。

有关可能原因的任何建议?我已经尝试了我能想到的一切

3 个答案:

答案 0 :(得分:0)

可能会有多个重复...

  1. 您的ListView是否直接位于Window
  2. 之下
  3. 如果您的Dark模板配置正确吗?
  4. 如果您直接在列表视图下设置它(没有静态资源引用),它是否适用...

     <ListView>
       <ListView.ItemTemplate>
          <DataTemplate x:Key="CardViewTemplate">
              ...
          </DataTemplate> 
       </ListView.ItemTemplate>
     </ListView> 
    

答案 1 :(得分:0)

  

当我在窗口级别使用资源(表达式暗)时

主题在窗口级别无法正常工作。或者你究竟在做什么?

答案 2 :(得分:0)

ExpressionDark存在(几个)问题。模板。

对于空行问题,请在以下行之后修改主题:

    <GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />

之后添加ContentPresenter:

    <GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />
    <ContentPresenter />

我遇到了同样的问题并在此处找到了解决方案: http://bogdanvarlamov.com/2011/01/21/expressiondark-wpf-theme-listview-problem/

我使用ExpressionDark的次数越多,我发现的问题越多,我就越想到更好的主题!