Xamarin लोड करने के लिए कैसे छवि contorol यदि यूआरएल की एक छवि है और अगर वीडियो लोड वीडियो नियंत्रण

0

सवाल

मैं विकसित कर रहा हूँ Facebook की तरह खिलाती पृष्ठ जहाँ मैं एक यूआरएल की सूची ( वीडियो और चित्र) । कैसे कर सकते हैं मैं में xaml यूआई नियंत्रण के लिए विशिष्ट यूआरएल प्रकार ( छवि या वीडियो ).

उदाहरण :

   ```<CollectionView ItemsSource="{Binding UrlList}">
            <Grid>
                If ( url is image)


                <Image Source="{Binding Url}"/>

                If ( url is video )

                <MediaElement Source="{Binding Url}" />
            </Grid>
     </CollectionView>```
controls forms xamarin xamarin.forms
2021-11-12 17:41:00
1

सबसे अच्छा जवाब

0

हाँ, आप का उपयोग कर सकते हैं DataTemplateSelector करने के लिए इस लक्ष्य को हासिल ।

एक DataTemplateSelector इस्तेमाल किया जा सकता का चयन करने के लिए एक DataTemplate क्रम में के मूल्य पर आधारित एक डेटा-बाउंड संपत्ति. यह सक्षम बनाता है एकाधिक DataTemplates करने के लिए लागू किया जा करने के लिए एक ही वस्तु के प्रकार, उपस्थिति को अनुकूलित करने के लिए विशेष वस्तुओं ।

1.बनाने के एक DataTemplateSelector

एक डेटा टेम्पलेट चयनकर्ता लागू किया जाता है बनाने के द्वारा है कि एक वर्ग से विरासत में मिली DataTemplateSelector. के OnSelectTemplate विधि है, तो अधिरोहित वापस करने के लिए एक विशेष DataTemplate.

आप उल्लेख कर सकते हैं निम्न कोड:

public class UrlTemplateSelector : DataTemplateSelector
{
    public DataTemplate ImageTemplate { get; set; }

    public DataTemplate VideoTemplate { get; set; }

    public DataTemplate OtherTemplate { get; set; }

    protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
    {
        ItemModel model = (ItemModel)item;

        if (model.Url.EndsWith(".mp4")|| model.Url.EndsWith(".avi")|| model.Url.EndsWith(".rmvb")) // you can add multiple video file suffixes
        {
            return VideoTemplate;

        }
        else if (model.Url.EndsWith(".png")|| model.Url.EndsWith(".bmp") || model.Url.EndsWith(".jpg"))//you can add multiple image file suffixes
        {
            return ImageTemplate;
        }
        else {
            return OtherTemplate;
        }
    }
}

मान लीजिए ItemModel है binded आइटम.

public class ItemModel
{
    public string Name { get; set; }
    public string Url { get; set; }
}

2. उपयोग(मान लीजिए पृष्ठ है TestPage)

TestPage.xaml

<ContentPage.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="imageTemplate">
            <ViewCell>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="0.4*" />
                        <ColumnDefinition Width="0.6*" />
                    </Grid.ColumnDefinitions>
                    <Label Text="{Binding Name}" TextColor="Green" FontAttributes="Bold" />
                    <Image Grid.Column="1" Source="{Binding Url}"  />
                </Grid>
            </ViewCell>
        </DataTemplate>
        <DataTemplate x:Key="videoTemplate">
            <ViewCell>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="0.4*" />
                        <ColumnDefinition Width="0.6*" />
                    </Grid.ColumnDefinitions>
                    <Label Text="{Binding Name}" TextColor="Red" FontAttributes="Bold" />
                <behaviors:MediaElement  Grid.Column="1" Source="{Binding Url}"  />
                </Grid>
            </ViewCell>
        </DataTemplate>
    <local:UrlTemplateSelector x:Key="mediaUrlTemplateSelector" ImageTemplate="{StaticResource imageTemplate}" VideoTemplate="{StaticResource videoTemplate}" />
    </ResourceDictionary>
</ContentPage.Resources>
<StackLayout Margin="20">
    <Label Text="ListView with a DataTemplateSelector" FontAttributes="Bold" HorizontalOptions="Center" />
<ListView x:Name="listView" Margin="0,20,0,0" ItemTemplate="{StaticResource mediaUrlTemplateSelector}" />
</StackLayout>

अधिक जानकारी के लिए, आप जाँच कर सकते हैं:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/templates/data-templates/selector.

और वहाँ है एक नमूना में शामिल दस्तावेज़ के ऊपर, आप यह कोशिश कर सकते हैं.

2021-11-15 02:42:45

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में