我有一个文本块,我想显示一个带有已定义字符串的文本。怎么做?
文本块:
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Padding="6" VerticalAlignment="Center" Margin="45,0,0,0" Height="30" Width="386" Text="My Program ver. Version"/>
我的字符串:
Public Version As String = "1.0a"
答案 0 :(得分:4)
您可以使用StringFormat。
<TextBlock Text="{Binding Path=Version, StringFormat=My Program ver. {0}}" />
在您的代码隐藏中,您必须将Version
更改为property(此属性应为ReadOnly
,因为它在运行时不会更改)并在构造函数中指定DataContext
:
Class MainWindow
Public Sub New()
InitializeComponent()
Me.DataContext = Me
End Sub
ReadOnly Property Version As String
Get
Return "1.0a"
End Get
End Property
End Class
答案 1 :(得分:1)
如果您希望TextBlock在每次有新版本时更新版本号,请执行以下操作: 你可以在C#中这样做。您可以很容易地找到如何在VB中编写它。
每次发布程序的新版本时,都会更新TextBlock。
在XAML中,您将TextBlock文本绑定到“Version”:
<TextBlock Text="{Binding Version, Mode=OneWay}" />`
然后在代码隐藏或视图模型中,您可以使用XAML TextBlock中的Binding属性:
public string Version
{
get
{
return String.Format("VERSION: {0}",DeploymentInfo.Version.ToString());
}
}
然后,您需要在项目中添加对 “System.Deployment” 的引用。
只有在完成项目的“发布”后才能使用此功能。启动调试器时,您可能只会看到版本号:0.0.0.0
答案 2 :(得分:0)
在XAML文件中:
首先,您应该为我的TextBlock命名,例如我已经给了tbWithNoName
。
<TextBlock x:Name="tbWithNoName" HorizontalAlignment="Left" TextWrapping="Wrap" Padding="6" VerticalAlignment="Center" Margin="45,0,0,0" Height="30" Width="386" Text="My Program ver. Version"/>
然后在Window对象上添加Loaded调用。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="Window_Loaded">
将Window_Loaded函数插入vb文件。
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
tbWithNoName.Text = tbWithNoName.Text + " " + Version
End Sub
这将在加载窗口时更改TextBlock的文本