वाक्य रचना ऊंचाई = "{SystemParameters.PrimaryScreenHeight बाइंडिंग}" सुराग प्रदान करता है लेकिन इस तरह के रूप में काम नहीं करता है। SystemParameters.PrimaryScreenHeight स्थिर है, इसलिए आप का उपयोग करेगा:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tools="clr-namespace:MyApp.Tools"
Height="{x:Static SystemParameters.PrimaryScreenHeight}"
Width="{x:Static SystemParameters.PrimaryScreenWidth}"
Title="{Binding Path=DisplayName}"
WindowStartupLocation="CenterScreen"
Icon="icon.ico"
>
और यह पूरे स्क्रीन फिट होगा। फिर भी, आप स्क्रीन आकार के प्रतिशत फिट करना पसंद कर सकते हैं, उदा। 90%, जिस स्थिति में वाक्य रचना एक बाध्यकारी कल्पना में एक कनवर्टर के साथ संशोधन किया जाना चाहिए:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tools="clr-namespace:MyApp.Tools"
Height="{Binding Source={x:Static SystemParameters.PrimaryScreenHeight}, Converter={tools:RatioConverter}, ConverterParameter='0.9' }"
Width="{Binding Source={x:Static SystemParameters.PrimaryScreenWidth}, Converter={tools:RatioConverter}, ConverterParameter='0.9' }"
Title="{Binding Path=DisplayName}"
WindowStartupLocation="CenterScreen"
Icon="icon.ico"
>
कहाँ RatioConverter यहाँ MyApp.Tools नाम स्थान में घोषित किया जाता है इस प्रकार है:
namespace MyApp.Tools {
[ValueConversion(typeof(string), typeof(string))]
public class RatioConverter : MarkupExtension, IValueConverter
{
private static RatioConverter _instance;
public RatioConverter() { }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ // do not let the culture default to local to prevent variable outcome re decimal syntax
double size = System.Convert.ToDouble(value) * System.Convert.ToDouble(parameter,CultureInfo.InvariantCulture);
return size.ToString("G0", CultureInfo.InvariantCulture);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ // read only converter...
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return _instance ?? (_instance = new RatioConverter());
}
}
}
कहाँ की परिभाषा एक संसाधन के रूप में पूर्व घोषणा के बिना मूल तत्व में सीधे उपयोग करने के लिए कनवर्टर मार्कअप एक्सटेंशन से प्राप्त होगा।
आपको इसकी आवश्यकता क्यों है? यदि आप बस खिड़की का आकार बदलना चाहते हैं, तो @ फिशरमेन ने आपको जवाब दिया। लेकिन अगर आप फ़ॉन्ट्स का आकार बदलना चाहते हैं, आदि। इसकी आवश्यकता नहीं है, क्योंकि डब्ल्यूपीएफ पहले से ही इसका प्रबंधन करता है। सभी डब्ल्यूपीएफ प्रतिपादन वर्चुअल निर्देशांक में काम कर रहा है, जो सिस्टम की डीपीआई सेटिंग्स के अनुसार भौतिक पिक्सेल में मैप किए जाते हैं। –
क्या आप चाहते हैं कि आपकी खिड़की बिल्कुल सही आकार है जिसकी सामग्री चाहता है? इस तरह के [प्रश्न] (http://stackoverflow.com/questions/1746431/wpf-control-size-to-content) को पढ़ें। – dowhilefor
लेकिन मेरे डब्ल्यूपीएफ ने सेट और फ़ॉन्ट आकार सेट को समन्वयित किया है। मूल रूप से सॉफ़्टवेयर को विभिन्न संकल्पों के लिए काम करने की आवश्यकता है –