簡體   English   中英

XAML中的預處理器條件編譯

[英]Preprocessor conditional compilation in XAML

我有一些用C#WPF編寫的代碼,我有一些調試代碼,我目前正在編譯或關閉調試或發布模式。 如何啟用或禁用當前基於C#預處理器定義在我的XAML中編寫的UI控件?

您可以在構造函數中添加一些啟用/禁用元素的代碼:

public MainWindow()
{
    InitializeComponent();

#if DEBUG
    button1.IsEnabled = false;
#endif
}

XAML沒有預處理器樣式的指令。 但是,您可以根據構建配置包含和排除XAML文件,從而為您提供一些控制。 這可以為您提供一種根據所選構建配置包含文件變體的方法。 當然,缺點是您必須維護文件的多個版本。 這可以通過使用T4模板來減輕,以便根據所選配置自動生成不同的文件。

有兩種方法可以做到這一點。 一種是使用預處理程序指令,它可以屏蔽僅在特定構建中運行它的代碼的完整部分。 或者,您可以使用條件屬性輕松阻止完整方法。 http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=420
以下是兩者之間差異的描述: http//www.thinkfarahead.com/2007/09/if-debug-vs-conditional.html 您可以通過在xaml中提供x:Name屬性並將代碼設置為禁用代碼的條件部分中的控件來引用代碼中的控件。

更新:更清楚地提到x:Name屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM