我有一个TabControl,我已经重新设计了.TabItem有一个触发器,当选择TabItem时会触发该触发器,将TabItem文本更改为粗体和绿色.我遇到的问题是选项卡内容中的文本也设置为粗体和绿色.
我可以通过将选项卡内容中的所有控件设置为我想要的颜色和字体重量来解决这个问题,但是我应该这样做吗?所以,我必须确保内容区域中的每个文本块都有一个样式,将颜色设置为黑色,字体权重正常.
如何将TabItem的IsSelected部分设置为显示绿色,但是仅保留选项卡的内容?
我试图将TabControl的前景设置为黑色,但这不起作用.
您将从下面的代码示例中看到第一个选项卡上的文本为绿色,我希望它为黑色,但不在选项卡内容中设置每个控件.
代码示例如下:
<Grid>
<Grid.Resources>
<!-- Tab item -->
<Style TargetType="{x:Type TabItem}">
<Setter Property="FontSize" Value="14"/>
<Setter Property="MinWidth" Value="200"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Padding="5,2">
<ContentPresenter ContentSource="Header"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Border.IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="Black"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Border.IsMouseOver" Value="False"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="Black" />
</MultiTrigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</ControlTemplate.Triggers> …Run Code Online (Sandbox Code Playgroud) 我在使用VS2010和带有位图效果的框架版本4时遇到了问题.如果我有下面的代码并使用.NET Framework 4 Client Profile在WPF应用程序中运行它,则不会出现位图效果.如果我将框架版本设置为.NET Framework 3.5 Client Profile(并且不更改任何代码),它将按预期运行.起初,我认为这是我的应用程序中的一个问题,但我删除了代码并将其放在一个单独的独立应用程序中,它的行为相同.其他人验证发生了同样的问题吗?
这里发生了什么?
VS2010中的版本4框架似乎忽略了位图效果.
<Window.Resources>
<Style x:Key="SectionHeaderTextBlockStyle" TargetType="{x:Type TextBlock}">
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="LightGreen"/>
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="Black" GlowSize="3" />
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="Contact Details" Style="{DynamicResource SectionHeaderTextBlockStyle}"/>
</Grid>
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2010创建安装程序包以安装WPF应用程序.我可以看到我可以添加.NET framework 4.0作为先决条件,但是如何让他自动运行而无需人工干预?
我是否必须创建一个小程序(针对框架1.1,因为我假设大多数机器都有1.1),它检测.NET框架4.0是否存在,如果没有静默安装,或者我可以让安装程序执行此操作.
我还必须安装OLEDB 12驱动程序,因为我正在连接到Access 2007数据库,因此我还必须在运行应用程序之前运行此安装程序.
我不希望安装下载和安装框架,我想在设置中包含框架可再发行组件.
任何帮助,将不胜感激.
谢谢