स्वेन एक अच्छा कैसे अभिविन्यास परिवर्तन का पता लगाने के दिखा काम करता है ...
हालांकि अभिविन्यास परिवर्तन करते हैं, फिर भी अगर आप केवल पोर्ट्रेट आप कुछ इस तरह कर सकता है की अनुमति देता है में रुचि रखते हैं:
देखें मॉडल:
Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new
EventHandler(SystemEvents_DisplaySettingsChanged);
}
public bool IsLandscape { get; set; }
void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
if (SystemParameters.PrimaryScreenWidth > SystemParameters.PrimaryScreenHeight)
{
IsLandscape = true;
}
else
{
IsLandscape = false;
}
RaisePropertyChanged("IsLandscape");
}
में आप मुख्य Window.xaml:
012,
<Border >
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsLandscape}" Value="True">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="90"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
///The rest of your controls and UI
</Border>
इसलिए हम वास्तव में अभिविन्यास, हम बस देख रहे हैं जब ऐसा होता है सीमित नहीं कर रहे हैं, और हमारे यूआई घूर्णन कर रहे तो यह अभी भी लगता है कि यह पोर्ट्रेट मोड में हैं :) फिर इस गैर मेट्रो विन 8 अनुप्रयोगों के लिए ज्यादातर है और या अनुप्रयोग जो Win 7 टैबलेट पर भी चलते हैं।
आपके प्रश्न का सीधा जवाब नहीं है, लेकिन यदि आप एक फ्लैश लेआउट का उपयोग करने के लिए अपने यूआई को फिर से डिजाइन करते हैं तो आपके उपयोगकर्ताओं को टैबलेट को लैंडस्केप मोड में बदलते समय आपके यूआई के किनारे नहीं देख पाएंगे। डब्ल्यूपीएफ में धाराप्रवाह लेआउट करने के लिए बहुत सारे विकल्प हैं। –
क्या आप लेआउट करने के लिए कैनवास का उपयोग कर रहे हैं? –