72917


以前[こちら](https://ja.stackoverflow.com/questions/71678/xamarin-
forms%E3%81%A7-%E3%83%91%E3%83%BC%E3%83%84%E3%81%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84)で教えて頂いた方法でxamlファイルで自分の好きなイメージを設計時に表示することが出来るようになったのですが  
csファイルで動的に作ろうとしたところ詰まってしまいました  
上手く行かない例の方で、先日教えて貰ったクラスを使ったり、直接イメージファイルを指定してみたのですが・・・  
何かファイルの指定の仕方がまずいのかと思うのですが、どのような記述が必要なのでしょう  
imageparts.ImageResourceExtension()  
と言うのが、先日教えていただいたソースをそのまま使用しています  
namespace はMyApp.imagepartsにしているだけです

上手く行かない例(csファイルに記述)

[code]

            private void MakePage()
            {
                //gridMainと言うグリッドが既にxamlには貼付ずみ
                ・・・グリッドを色々初期化
    
                //イメージファイルをリソースとして使用できるようにするクラス
                MyApp.imageparts.ImageResourceExtension a = new imageparts.ImageResourceExtension();
                a.Source = "MyApp.Images.btn.btnPowerOn.png";//★イメージが読めていない
                //a.Source = "{ imageSrcParts: ImageResource MyApp.Images.btn.Off.png}";//★"imageSrcParts:"はxamlが使う名前なので無意味?
                //a.Source = "{ImageResource MyApp.Images.btn.Off.png}";
    
    
                for (int i = 0; i < _initVal.xCnt; i++)
                {
                    for(int j = 0; j < _initVal.yCnt; j++)
                    {
                        //ボタンをグリッド上に配置
                        ImageButton image = new ImageButton();
    
                        image.Source = a.Source;    //★イメージファイルを指定したつもり
                        //image.Source = "ImageResource MyApp.Images.btn.Off.png";
                        //image.Source = "{imageSrcParts: ImageResource MyApp.Images.btn.Off.png}";
                        //image.Source = "{ImageResource MyApp.Images.btn.Off.png}";
                        image.Clicked += Image_Clicked;
                        image.BackgroundColor =Color.Transparent;
    
                        gridMain.Children.Add(image, i, j); //グリッド上の指定場所にイメージを貼り付け
                    }
                }
            }
    
[/code]

上手く行く例(xamlに記述)

[code]

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:imageSrcParts="clr-namespace:MyApp.imageparts"
                 x:Class="MyApp.Views.pageMainButton">
        <ContentPage.Content>
            <Grid BackgroundColor="DarkGray">
                <Grid.RowDefinitions>
                    <RowDefinition Height="50" />
                    <RowDefinition Height="50" />
                </Grid.RowDefinitions>
                <!-- ONボタン Images\btnフォルダ内のOn.png   -->
                <ImageButton Source="{imageSrcParts:ImageResource MyApp.Images.btn.On.png}" 
                             BackgroundColor="Transparent" x:Name="btnOn"
                             Grid.Row="0" Grid.Column="0" />
            </Grid>
        </ContentPage.Content>
    </ContentPage>
    
[/code]


CC BY-SA 4.0
2020-12-26T15:29:25.297
72909
2020-12-27T03:43:22.897
10098
question
c# visual-studio xamarin xamarin.forms
Xamarin.Formsでのイメージの貼り付け(csファイル)


お騒がせしました

[code]

    image.Source = ImageSource.FromResource("MyApp.Images.btn.On.png");
    
[/code]

とするだけでした


CC BY-SA 4.0
2020-12-27T03:43:22.897
72917
2020-12-27T03:43:22.897
10098
72909
answer