【问题标题】:Button turns invisible on Windows 7 machines without Visual Studio installed按钮在未安装 Visual Studio 的 Windows 7 计算机上变为不可见
【发布时间】:2010-12-06 16:49:04
【问题描述】:

我们有一个窗口,可以在我们所有安装了 Visual Studio 的 Windows 7 开发机器上正常显示,但在没有安装 Visual Studio 的机器上却没有。我们有一个简单的确定/取消按钮对,在受影响的机器上,确定按钮是不可见的,但如果您单击它应该在的位置,它仍然可以工作。

以下是使用的样式:

<Style x:Key="OptionsOkButton" TargetType="{x:Type Button}">
    <Setter Property="HorizontalAlignment" Value="Right" />
    <Setter Property="Width" Value="100" />
    <Setter Property="Height" Value="30" />
    <Setter Property="FontSize" Value="14" />
    <Setter Property="Margin" Value="5" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Effect">
        <Setter.Value>
            <DropShadowEffect ShadowDepth="3" Opacity="0.7" />
        </Setter.Value>
    </Setter>
</Style>

<Style x:Key="OptionsCancelButton" TargetType="{x:Type Button}">
    <Setter Property="HorizontalAlignment" Value="Left" />
    <Setter Property="Width" Value="100" />
    <Setter Property="Height" Value="30" />
    <Setter Property="FontSize" Value="14" />
    <Setter Property="Margin" Value="5" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Effect">
        <Setter.Value>
            <DropShadowEffect ShadowDepth="3" Opacity="0.7" />
        </Setter.Value>
    </Setter>
</Style>

这里是按钮的代码:

<Grid Name="grdFooter" DockPanel.Dock="Bottom">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Button Grid.Column="0" Content="OK" Style="{StaticResource OptionsOkButton}" Click="btnOK_click"/>
    <Button Grid.Column="1" Content="Cancel" Style="{StaticResource OptionsCancelButton}" Click="btnCancel_Click"  />
</Grid>

这似乎发生在使用这些样式的每个按钮对上(大约 5 个不同的窗口)。有没有人对可能导致它的原因有任何想法或建议?

编辑:我应该明确一点,即使在全新安装的 Windows XP 和 Vista 上,一切都运行良好。它似乎仅限于 Windows 7,并且在全新安装和从 Vista 升级时都会出现(在 Vista 上工作正常,升级,按钮消失)。

编辑2:我还要明确一点,只有确定按钮不可见,取消按钮仍会正常显示。

【问题讨论】:

  • 试过没有效果?可能是视频问题。我非常怀疑它与 VS 有什么关系。
  • 我们认为其中一个 dll 可能会随着 VS 安装而改变。

标签: wpf xaml windows-7 button


【解决方案1】:

根据this MSDN entryDropShadowEffect 仅在 .NET 3.5 SP1 中受支持。我猜这是在您的 Visual Studio 机器上安装的,而其他机器则具有旧版本的框架。

【讨论】:

  • 如果还没有 3.5sp1,我们会在安装过程中安装它。
  • 好的:如果你删除DropShadowEffect,按钮会显示吗?
  • 由于 Ok 和 Cancel 按钮具有相同的 DropShadowEffect 我们假设不是这样。我现在去看看。
  • 确实是这样。现在我很好奇 DropShadowChrome 是否有同样的问题。
  • 这很奇怪。即使确定按钮消失,取消按钮也会有阴影吗?这将暗示完全不同的东西......
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多