উত্তর:
অবশ্যই আছে :
System.ComponentModel.DesignerProperties.GetIsInDesignMode
উদাহরণ:
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
public class MyUserControl : UserControl
{
public MyUserControl()
{
if (DesignerProperties.GetIsInDesignMode(this))
{
// Design-mode specific functionality
}
}
}
Enable project code
সক্ষম করতে হবে (বা মেনু-> ডিজাইন-> Project প্রকল্প কোড চালান)।
কিছু ক্ষেত্রে আমার জানা দরকার, আমার নন-ইউআই ক্লাসে কোনও কল ডিজাইনার (যেমন আমি এক্সএএমএল থেকে ডেটা কনটেক্সট ক্লাস তৈরি করি) এর দ্বারা শুরু করা হয়েছিল কিনা whether তারপরে এই এমএসডিএন নিবন্ধটি থেকে সহায়তা সহায়ক:
// Check for design mode.
if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue))
{
//in Design mode
}
উইনফোর্মে হোস্ট করা যে কোনও ডাব্লুপিএফ নিয়ন্ত্রণগুলির জন্য , DesignerProperties.GetIsInDesignMode(this)
কাজ করে না।
সুতরাং, আমি মাইক্রোসফ্ট কানেক্টে একটি বাগ তৈরি করেছি এবং একটি কার্যপ্রণালী যুক্ত করেছি:
public static bool IsInDesignMode()
{
if ( System.Reflection.Assembly.GetExecutingAssembly().Location.Contains( "VisualStudio" ) )
{
return true;
}
return false;
}
GetEntryAssembly()
পরিবর্তে হওয়া উচিত নয় GetExecutingAssembly()
? পরবর্তীকালে
দেরী উত্তর, আমি জানি - তবে অন্য যে কেউ এটিকে DataTrigger
, বা সাধারণভাবে এক্সএএমএল এর যে কোনও জায়গায় ব্যবহার করতে চায় :
xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=PresentationFramework"
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
Path=(componentModel:DesignerProperties.IsInDesignMode)}"
Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
এটি ব্যবহার করুন:
if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
//design only code here
}
(Async এবং ফাইল অপারেশনগুলি এখানে কাজ করবে না)
এছাড়াও, এক্সএএমএল-তে একটি ডিজাইন-সময় অবজেক্ট ইনস্ট্যান্ট করতে (ডি বিশেষ ডিজাইনার নেমস্পেস)
<Grid d:DataContext="{d:DesignInstance Type=local:MyViewModel, IsDesignTimeCreatable=True}">
...
</Grid>
Windows.ApplicationModel
) উইন্ডোজ রানটাইম এপিআই-এ অন্তর্ভুক্ত স্টোর অ্যাপ্লিকেশনগুলির জন্য। যদি আপনি কেবল একটি নিয়মিত উইন্ডোজ ডেস্কটপ অ্যাপ্লিকেশন নিয়ে কাজ করছেন তবে এটি কোনও আউট-অফ-বক্স ডাব্লুপিএফ সমাধান নয়।