简体   繁体   English

来自networkshare的UWP XAML ImageBrush.imageSource

[英]UWP XAML ImageBrush.imageSource from networkshare

i edited my question: 我编辑了我的问题:

i have a stack panel with buttons from array. 我有一个带有面板按钮的堆栈面板。 now I want to set the Button Background from networkshare images. 现在我想从networkshare图像设置按钮背景。

here ist my source code: 这是我的源代码:

XAML: XAML:

<Page
x:Class="App4.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App4"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Height="1205.722" Width="2045.722">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="0,0,0,0">
    <StackPanel x:Name="sp" HorizontalAlignment="Left" Height="1070" Margin="10,10,0,0" VerticalAlignment="Top" Width="145" Padding="0" CornerRadius="10" RequestedTheme="Light" ScrollViewer.HorizontalScrollBarVisibility="Visible" Grid.RowSpan="2">
        <FlyoutBase.AttachedFlyout>
            <MenuFlyout/>
        </FlyoutBase.AttachedFlyout>
    </StackPanel>
</Grid>

Behind Code: 背后的代码:

private void onLoad()
    {


        for (int i = 0; i < imgNames.Length; ++i)
        {
            ImageBrush brush1 = new ImageBrush();
            brush1.ImageSource = new BitmapImage(new Uri("ms-appx:///assets/" + imgNames[i]));
            Button button = new Button()
            {
                Content = string.Format(""),
            Tag = i
            };
            button.Width = 100;
            button.Height = 100;
            button.Background = brush1;
            button.Margin = new Thickness(0, 20, 0, 0);


            button.Click += new RoutedEventHandler(button_Click);   

            this.sp.Children.Add(button);


        }
    }

Thanks 谢谢

For loading image from network source you need to use these capabilities in your app 要从网络源加载图像,您需要在应用中使用这些功能

<Capabilities>
  <Capability Name="internetClient" />
  <Capability Name="privateNetworkClientServer" />
  <Capability Name="internetClientServer" />
  <uap:Capability Name="enterpriseAuthentication" />
</Capabilities>

and your image 还有你的形象

<Image Name="YourImageElementName" />

and loading image in code behind 并在后面的代码中加载图像

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(@"\\Your Image Full Path e.g user\folder\subfolder");
StorageFile file = await folder.GetFileAsync("ImageName.jpg");
using (var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
    BitmapImage bitmap = new BitmapImage();
    bitmap.SetSource(stream);
    YourImageElementName.Source = bitmap;
}

Github sample i created for this https://github.com/shubdragon/LoadNetworkImageRepo 我为此https://github.com/shubdragon/LoadNetworkImageRepo创建的Github示例

Points need to noted 要点要注意

1) You need to set your network location in code and image name with required extension. 1)您需要使用代码和图像名称(带有所需扩展名)设置网络位置。

2) must share that location to homegroup. 2)必须将该位置共享给家庭组。

3) Note code behind in different pages and Package.appxmanifes (view it as code in xml editor) 3)注意不同页面和Package.appxmanifes中的代码(在xml编辑器中以代码形式查看)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM