【发布时间】:2016-07-22 10:43:53
【问题描述】:
我的风格如下。
<TextBox HorizontalContentAlignment="Center" Text="{Binding IpAddress, Mode=TwoWay}" ToolTip="Ip Address of camera">
<TextBox.Style>
<Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Style.Resources>
<VisualBrush x:Key="CueBannerBrush" AlignmentX="Center" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<Label Content="Camera Ip Address" Foreground="Gray" Opacity="0.5" FontStyle="Italic" />
</VisualBrush.Visual>
</VisualBrush>
</Style.Resources>
<Style.Triggers>
<Trigger Property="Text" Value="{x:Static sys:String.Empty}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
我将它作为资源字典保存在 Skin.xaml 文件中,以便按照答案 here 中的说明重复使用。
但现在我希望 Content="Camera Ip Address"(样式中的第 7 行)对于我应用样式的每个文本框都不同。我看到了答案this 和this。这些 SO 答案建议使用 BasedOn 属性,但我不确定如何将其应用于我的案例。我的案子似乎很深。有人可以建议我如何实现这一目标。
基本上我想要的是,对于我应用的一个文本框,内容应该是 相机 IP 地址,而对于另一个文本框,我希望这个内容是 相机登录。我如何做到这一点?
【问题讨论】:
标签: wpf