WPF在不同的计算机上显示不同

时间:2010-07-28 05:25:30

标签: c# wpf windows-xp

我在计算机上运行Windows XP,另一台计算机也在运行Windows XP。

在我的WPF应用程序中,我将按钮的样式更改为在翻转,单击等时不会突出显示。

在我的计算机上,这是正在发生的行为。在另一个Windows XP系统上,我看到了一些按钮的概述,我翻过它们或点击。

关于为什么会发生这种情况的任何想法?

修改

这是Button本身

        <Button Click="Next_Click" Width="100" VerticalAlignment="Center" BorderThickness="0" BorderBrush="Black" Background="Black" IsTabStop="False" DockPanel.Dock="Right" HorizontalAlignment="Left" Height="154" Name="NextOffers">
            <Image Source="Images/offer_right_arrow.jpg" Width="100" Height="154" MaxWidth="100" MaxHeight="154" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="100" MinHeight="154" ></Image>
        </Button>

也是这种风格。

<Style TargetType="{x:Type ListBoxItem}" x:Key="ListBoxItemStyle">
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListBox_MouseLeftButtonDown"></EventSetter>
    <Setter Property="FocusVisualStyle" Value="{x:Null}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <Border Name="Border" Padding="0,0,2,0" SnapsToDevicePixels="true">
                    <ContentPresenter />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsSelected" Value="true">
                        <Setter TargetName="Border" Property="Background" Value="Black"></Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

显然,我没有为此按钮制作模板。

我在后面的代码中动态加载我的ResourceDictionaries。

2 个答案:

答案 0 :(得分:2)

听起来您需要为按钮设置自定义控件模板。大多数WPF控件的默认控件模板取决于所选的Windows主题,因此无论您使用的是Windows经典主题,Aero,Royale还是其他任何内容,按钮都会跟随主题。如果您希望它看起来完全相同,无论用户选择何种操作系统或主题,您都可以使用自定义控件模板为自己省去很多麻烦。

谷歌“给我看模板”的应用程序将为您提供每个主题的控件模板源(XAML)。这是创建自定义模板的良好起点。

答案 1 :(得分:1)

您遇到的问题很可能是由于默认Button Chrome造成的。你可以应用各种样式,但是如果你保持Chrome完整,那么Windows主题将会让它变得丑陋。

您需要重新创建ControlTemplate本身。

相关问题