gpt4 book ai didi

wpf - 在 Watermark 附加属性中绑定(bind) TextBox.Text 以将其本地化

转载 作者:行者123 更新时间:2023-12-04 14:38:52 27 4
gpt4 key购买 nike

我需要向我的 WPF 应用程序添加水印,我正在使用 this watermark service实现它。

它按预期工作,但我需要本地化显示为水印的文本,但我找不到实现它的方法。

我的 xaml 声明:

<TextBox
Text="{Binding Name, Mode=TwoWay}">
<Watermark:WatermarkService.Watermark>
<TextBlock
Text="{Binding <What-goes-here?>}"
/>
</Watermark:WatermarkService.Watermark>
</TextBox>

我的 View 模型:

public class PersonViewModel
{
public string Name {get;set;}

public string NameWatermark {get;set;}
}

以下行不起作用:

Text="{Binding NameWatermark}"

<Window x:Name="ThisWindow"
...
Text="{Binding Path=NameWatermark,
ElementName=ThisWindow}"

有什么办法可以实现吗?

如有任何帮助,我们将不胜感激。

最佳答案

我意识到这个问题很古老,但对于谷歌时间旅行者来说,我遇到了完全相同的问题并通过使用 MultiDataTrigger 来隐藏/显示水印元素来解决它。它之所以有效,是因为它没有像原始 Watermark:WatermarkService.Watermark 那样将元素嵌入到装饰器中。

<Grid>
<TextBox x:Name="messageBox" Text="{Binding Message, UpdateSourceTrigger=PropertyChanged}" Padding="5">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding SendMessageCommand}"/>
</TextBox.InputBindings>
</TextBox>
<TextBlock Text="{text:Translate Key=WriteMessageWatermark}" IsHitTestVisible="False" Foreground="LightGray" Margin="7,6,0,0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=messageBox, Path=Text.IsEmpty}" Value="True" />
<Condition Binding="{Binding ElementName=messageBox, Path=IsFocused}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>

关于wpf - 在 Watermark 附加属性中绑定(bind) TextBox.Text 以将其本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9700582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com