有没有办法定义一个常量字符串,将其用作整个应用程序的静态资源?我正在运行一个Wpf应用程序,但没有主xaml窗体。该应用程序是由单个classic .cs窗体处理的xaml控件的集合。
e0bqpujr1#
您可以将其定义为应用程序资源:
<Application x:Class="xxxxxx" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:clr="clr-namespace:System;assembly=mscorlib" StartupUri="MainWindow.xaml"> <Application.Resources> <clr:String x:Key="MyConstString">My string</clr:String> </Application.Resources> </Application>
dly7yett2#
作为answer by @FelicePollano的补充-为了使代码缩进工作,我把它作为一个单独的“答案”。如果您碰巧在. cs文件中定义了原始常量,则可以通过以下方式避免在<Application.Resources>中复制其值:
<Application.Resources>
<x:Static x:Key="MyConstString" Member="local:Constants.MyString" />
要使上面的引用local起作用,您需要在标记<Application>中包含名称空间xmlns:local="clr-namespace:Utils"。这样,cs类就可以如下所示:
local
<Application>
xmlns:local="clr-namespace:Utils"
namespace Utils { public class Constants { public const string MyString = "My string"; } }
在xaml代码中的用法示例如下:
<TextBlock Text="{StaticResource MyConstString}" />
vhipe2zx3#
只需添加一个资源字典XAML文件,假设它的名称为Dictionary.xaml(Visual Studio可以自动为您创建一个)然后,在此字典中添加静态资源。若要完成,请在所有XAML控件中引用该词典:
Dictionary.xaml
<UserControl.Resources> <ResourceDictionary Source="Dictionary.xaml"/> </UserControl.Resources>
kx1ctssn4#
您可以这样使用:一、样本常量变量:
namespace Constants { public class ControlNames { public const string WrapperGridName = "WrapperGrid"; } }
第二个XAML使用:
<TextBlock Text="{x:Static Member=Constants:ControlNames.WrapperGridName}"
4条答案
按热度按时间e0bqpujr1#
您可以将其定义为应用程序资源:
dly7yett2#
作为answer by @FelicePollano的补充-为了使代码缩进工作,我把它作为一个单独的“答案”。
如果您碰巧在. cs文件中定义了原始常量,则可以通过以下方式避免在
<Application.Resources>
中复制其值:要使上面的引用
local
起作用,您需要在标记<Application>
中包含名称空间xmlns:local="clr-namespace:Utils"
。这样,cs类就可以如下所示:
在xaml代码中的用法示例如下:
vhipe2zx3#
只需添加一个资源字典XAML文件,假设它的名称为
Dictionary.xaml
(Visual Studio可以自动为您创建一个)然后,在此字典中添加静态资源。
若要完成,请在所有XAML控件中引用该词典:
kx1ctssn4#
您可以这样使用:
一、样本常量变量:
第二个XAML使用: