![](/img/trans.png)
[英]SQLite + Visual Studio 2013 Express - design-time Support issue
[英]Visual Studio 2013 WPF design-time data isn't displayed
我有一些在設計器中可以正常顯示的UserControl,但是我無法對構造函數中的設計時示例內容進行任何更改。 似乎根本沒有執行。
XAML:
<UserControl x:Class="Example.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock Name="testx" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Grid>
碼:
using System.ComponentModel;
using System.Windows.Controls;
namespace Example
{
/// <summary>
/// Interaction logic for Test.xaml
/// </summary>
public partial class Test : UserControl
{
public Test()
{
InitializeComponent();
if (DesignerProperties.GetIsInDesignMode(this))
testx.Text = " IN DESIGN!";
}
}
}
我已經嘗試了很多選項,但是仍然無法在WPF設計器中顯示如何顯示設計時數據:(不同的上下文綁定也什么也沒有顯示...
PS:在Win8上嘗試了干凈的VS2012和VS2013項目。 什么都沒做! :(我不知道該怎么辦,還沒有在網上找到任何類似的東西...僅在構造函數中添加設計檢查並設置現有的控制文本就足夠了嗎?
K,最簡單的答案是:您在正確的道路上。
總的來說是:比這復雜一點。
如果放入另一個else testx.Text = RUNTIME;
,示例將像“ kinda”一樣工作else testx.Text = RUNTIME;
在您if
,像這樣:
if (DesignerProperties.GetIsInDesignMode(this))
testx.Text= " IN DESIGN!";
else
testx.Text= " Runtime";
您將在運行時看到所需的內容,但您的設計時間將為空。
在設計時,如果我沒記錯的話,還需要設置上下文。 如果您正在使用任何MVVM框架,則可以“免費”獲得此功能。 與之類似,您將擁有“設計時”屬性,並且可以設置設計所需的任何數據。 要注意的是,如果我的記憶正確,則需要有一個空的構造函數。 您還將使用綁定,而不是直接設置text屬性。
我記得上次我在“香草” wpf中嘗試執行類似的操作時缺少默認的WPF和綁定(例如,沒有MVVM,沒有綁定),但是我相信這有點兒破解這是可以實現的。 再說一次,我記不起來了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.