मुझे हाल ही में ऐसा करना पड़ा और मुझे आश्चर्य हुआ कि यह कितना आसान था जब मुझे आसानी से कोई स्पष्ट उदाहरण नहीं मिल सका।
#if DEBUG
[assembly: XmlnsDefinition("debug-mode", "Namespace")]
#endif
फिर, उस नाम स्थान परिभाषा की उपस्थिति के आधार पर अपनी सामग्री का चयन करने के मार्कअप-संगतता नाम स्थान के AlternateContent टैग इस्तेमाल करें::
<Window x:Class="Namespace.Class"
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="debug-mode"
Width="400" Height="400">
...
<mc:AlternateContent>
<mc:Choice Requires="d">
<Style TargetType="{x:Type ToolTip}">
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FlowDirection" Value="LeftToRight"/>
</Style>
</mc:Choice>
<mc:Fallback>
<Style TargetType="{x:Type ToolTip}">
<Setter Property="FontFamily" Value="Tahoma"/>
<Setter Property="FlowDirection" Value="RightToLeft"/>
</Style>
</mc:Fallback>
</mc:AlternateContent>
...
</Window>
अब क्या मैंने किया था AssemblyInfo.cs के लिए निम्न जोड़ने था , जब DEBUG परिभाषित किया गया है, "डीबग-मोड" भी परिभाषित किया जाएगा, और "डी" नामस्थान मौजूद होगा। इससे वैकल्पिक सामग्री टैग कोड का पहला ब्लॉक चुनता है। यदि DEBUG परिभाषित नहीं किया गया है, तो कोड का फ़ॉलबैक ब्लॉक उपयोग किया जाएगा।
यह नमूना कोड परीक्षण नहीं किया गया था, लेकिन यह मूल रूप से वही बात है जिसका उपयोग मैं अपने वर्तमान प्रोजेक्ट में सशर्त रूप से कुछ डीबग बटन दिखाने के लिए कर रहा हूं।
मैंने कुछ उदाहरण कोड के साथ एक ब्लॉग पोस्ट देखा जो "अनजान" टैग पर निर्भर था, लेकिन यह इस विधि के रूप में बहुत कम स्पष्ट और उपयोग करने में आसान लग रहा था।
आप क्या करने की कोशिश कर रहे हैं? – tsells
मुझे डीबग मोड में अलग-अलग शैलियों की आवश्यकता है, ताकि मैं डीबग मोड में हल्का निष्पादन कर सकूं। –