[c#] هل يحتوي XAML على توجيه مترجم شرطي لوضع التصحيح؟


Answers

يمكنك استخدام محدد قالب. فئة DataTemplateSelector هو شيء قمت برمجته. باستخدام طريقة اختيار القالب التي قمت بتجاوزها ، يمكنك وضع توجيهات ما قبل التشغيل الخاصة بك.

http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx

Question

أحتاج إلى شيء من هذا القبيل للأنماط في XAML:

<Application.Resources>

#if DEBUG
    <Style TargetType="{x:Type ToolTip}">
        <Setter Property="FontFamily" Value="Arial"/>
        <Setter Property="FlowDirection" Value="LeftToRight"/>
    </Style>
#else
    <Style TargetType="{x:Type ToolTip}">
        <Setter Property="FontFamily" Value="Tahoma"/>
        <Setter Property="FlowDirection" Value="RightToLeft"/>
    </Style>
#endif

</Application.Resources>



أشعر أن الإجابات المحددة ليست أسهل في الاستخدام. فيما يلي الحل الخاص بي باستخدام خاصية تبعية مخصصة:

using namespace Utility{
    public static class DebugVisibility
    {
        public static readonly DependencyProperty IsVisibleProperty = DependencyProperty.RegisterAttached(
    "Debug", typeof(bool?), typeof(DebugVisibility), new PropertyMetadata(default(bool?), IsVisibleChangedCallback));

        private static void IsVisibleChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var fe = d as FrameworkElement;
            if (fe == null)
                return;
#if DEBUG
            fe.Visibility = Visibility.Visible;
#else
            fe.Visibility = Visibility.Collapsed;
#endif
        }

        public static void SetIsVisible(DependencyObject element, bool? value)
        {
            element.SetValue(IsVisibleProperty, value);
        }

        public static bool? GetIsVisible(DependencyObject element)
        {
            return (bool?)element.GetValue(IsVisibleProperty);
        }
    }
}

وسيتم استخدام xaml على النحو التالي:

<window ... xmlns:Util="clr-namespace:RequestCheckHelper.Utility" >
    <Label Util:DebugVisibility.IsVisible="True">
</window>

لقد احتفظت بها كأنها منطقية في حال أردت إضافة بعض المنطق الآخر للرؤية.




Related



Tags

c# c#   wpf   xaml