就像开发刺猬说的那样……相反的是:不要使用它。
d: 用于设计模式,因此您可以使用以下内容:
<Window ...
Height="600" Width="800"
d:Height="200" d:Width="300" >
并且在设计和运行时具有不同的设计高度/宽度。
一些框架实际上会帮助你,并通过做类似的事情(这个例子专门来自 MVVM-Light 框架):
DataContext="{Binding Main, Source={StaticResource Locator}}"
然后,您可以根据IsInDesignMode
变量具有不同的值,因此您可以实现不同的数据服务,这些服务将为您的设计提供虚拟数据(比如说随机日期列表)和运行时的真实数据(来自数据库的真实日期)例子)。
这样,您无需担心设计/运行时的每个页面,因为框架会为您整理并为您提供正确的数据。
编辑:
根据你的评论......你不能那样做。您要么必须依赖一些编码(选项 1,更长),要么需要一些框架(选项 2,我认为更好)。
在每种情况下,您的 XAML 都将如下所示:
<TextBlock x:Name="FileText"
TextWrapping="Wrap"
Text="{Binding BlendabilityText}"
/>
当然,你需要public string BlendabilityText { get; set; }
在你的模型上有一个。
选项 1:
您需要使用以下属性创建视图模型:'public string BlendabilityText { get; 放; }',并有 2 个构造函数。默认为空的,这是默认情况下处于设计模式时调用的内容,您将在其中初始化属性,如BlendabilityText = "TestTest";
在您应该为运行时模式调用的第二个构造函数中,您应该执行相同的操作BlendabilityText = "ProductionValue";
价值。
现在您应该看到正确的输出。
选项 2:
使用 MVVM-Light 框架,您可以使用IsInDesignMode
初始化您的属性,将其放入您的构造函数中:
if (IsInDesignMode)
{
BlendabilityText = "TestTest";
}
else
{
BlendabilityText = "ProductionTest";
}
现在,您的字符串会根据框架的IsInDesignMode
.