मुझे एक ही समस्या थी। जब संभव हो तो मैं स्टैकलेआउट की चौड़ाई और ऊंचाई को भरना चाहता था लेकिन वास्तविक छवि को फसल के बिना। यहां दिए गए उत्तरों ने मुझे सही तरीके खोजने में मदद की है। यहां मेरे लिए क्या काम किया गया है:
<Grid
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
>
<Image
x:Name="photo"
Aspect="AspectFit"
/>
</Grid>
शायद यह किसी के लिए उपयोग किया जाएगा।
स्पष्टीकरण:
HorizontalOptions और VerticalOptions मूल्य FillAndExpand साथ हैं, इसलिए ऊंचाई और ग्रिड की चौड़ाई माता-पिता को भरने के लिए, इस मामले Stacklayout है कि में समायोजित कर रहे हैं। छवि ग्रिड का एक बच्चा है, इसलिए यह माता-पिता के अनुसार बदलता है (हमने छवि को कोई अतिरिक्त विकल्प नहीं दिया है)।
छवि का पहलू AspectFit पर सेट किया गया है, ताकि छवि दृश्य (इस मामले में ग्रिड) फिट हो और इसके अनुपात को भी संरक्षित करे।
इस तरह, यदि छवि पोर्ट्रेट मोड में है लेकिन बहुत संकीर्ण है, तो यह ग्रिड (स्टैकलायआउट) की ऊंचाई को भर देगा, लेकिन इसके अनुपात को संरक्षित करने के लिए चौड़ाई नहीं भर जाएगी और ऊपर या नीचे से नहीं फसल जाएगी ।
यदि छवि लैंडस्केप मोड में है, तो यह ग्रिड (स्टैकलेआउट) की चौड़ाई भर जाएगी, लेकिन इसके अनुपात को संरक्षित करने के लिए ऊंचाई को भर नहीं पाएगी और बाएं या दाएं से नहीं फेंक दी जाएगी।
उपयोग AspectFit –
@JayPatel के बजाय AspectFill यह छवि –