ここから本文です
ベランダ菜園とWindows用アプリ作成とExcel用アプリ(アドイン)作成

書庫全体表示

記事検索
検索

全197ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 前のページ | 次のページ ]

トマト(レッドオーレ)
種まきから29日目の今日、2019/03/31
イメージ 1
真ん中

イメージ 2
やっと発芽!

イメージ 3

イメージ 4
イメージ 5
気温は去年と変わらないのに11日も遅く
1ヶ月もかかったのは期限が3〜4年前の種だったからかしら
来年は厳しそう


にんにく(遠州極早生)
1週間前

今日、2019/03/31
イメージ 6
日付しか変わっていない気もするけど

イメージ 7
右プランター、先週50センチだったのが53センチ

イメージ 8
左プランター、45センチから48センチになった

最後の追肥?
イメージ 29
収穫前に追肥するのは良くないらしい
収穫は5月中旬以降だからもう一回くらいはできるかな

新しい葉っぱが出てくるところ
イメージ 9
くびれがあるからにんにくの芽なのかも
って思うんだけど
今作のにんにくは、この中から葉っぱが出てくることが続いている

イメージ 10
でも前よりくびれがはっきりしてきた感じなので
今度のはにんにくの芽なのかも
時期的にも去年は3/26に出てきているからあっている

葉っぱの枚数
イメージ 11
枯れていない葉っぱの枚数は7枚
例年だと4枚、多くて5枚だったからかなり多い

イメージ 12
こんなにたくさん葉っぱがついているのは初めて

むかごの鉢
イメージ 13
この前の追肥が効いたのか色が濃くなった気がする
それでも例年に比べると小さいかなあ


種からのいちご
イメージ 14
イメージ 15
これは咲くかも

イメージ 16
上が種からのいちご、こちらは花芽が見えないけど
下のランナーからの株は

イメージ 17
もう少しで咲きそう

にんにくのプランターに種から発芽したいちご
イメージ 33
写真中央と中央下の2株

イメージ 34
ここに1株の合計3株
このまえ除草したときには気づかなかったから
もう少しあったのかも


雑草
イメージ 18
マツバウンランとオオマツバウンラン
こうしてみると結構きれいなんだよねえ

イメージ 19
マツバウンラン

イメージ 20
オオマツバウンラン

イメージ 21
ほぼ同じ環境で育ったはずだから違いが出ている
オオマツバウンランは
背丈や茎の太さ、花が名前通り少し大きい
茎が緑、色が薄い
茎から側枝が出ている
花は上の方に集中
そうしてみると中央に生えているのは、どちらとも言えないような中間の特徴なので
交雑したものかも?

イメージ 24
左のがそれ


リナリアじゃなかった
イメージ 22
ここに生えていたのは

イメージ 23
イメージ 32
リナリアじゃなくてオオマツバウンランだった、残念

ネギ伸びる
イメージ 25
このベランダ菜園では新記録
この放置プランターの土が良いのかも
別のところでは
イメージ 28
小さいまま
窒素肥料の硫安を入れても変化なかったから
酸性土壌が原因かなあ
でも石灰は4〜5年くらい切らしたままなのはさっきのプランターも同じ
いろいろ足りないんだろうなあ


山芋
イメージ 26
去年秋にむかごと小さな山芋を植えて、黒ビニールを掛けていたもの
雨が当たらないと土が柔らかいままだねえ
去年だと早いものは4月上旬くらいに発芽していたので

イメージ 27
温度を上げるために透明ビニールにしてみた

鉢植え山芋
イメージ 30
陽のあたる場所へ

イメージ 31
芋の先端が突き出る状態で植えてある
芋を植えるのは初めてなので
どこから芽が出るのか、そもそもこの状態でも出てくるのかもわからない


関連記事
2019/04/06は1週間後
いちご開花、にんにくの芽でてきた ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15924922.html



先週は2019/2/24
ネギ収穫、スイートバジル発芽、にんにくといちごの様子 ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15913086.html

去年2018/4/1
にんにくの芽でてきた、トマト18日目で発芽、いちご、マツバウンラン、オオマツバウンラン開花、3月の気温 ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15439469.html






イメージ 1
おとといからの方法で市松模様を下敷きにして
半透明の色を見た目でもわかるようにした
たったこれだけなんだけど思っていたよりかなり手間がかかった(3日)w

イメージ 9
完全不透明、A=255

イメージ 10
完全透明、A=0

イメージ 11
半透明


イメージ 2
61〜76行目をコメントアウトして
変わりにこの部分をC#コードで書いたのが
イメージ 3
こんなに長くなった、でもコードで書くと

要素のBackgroundにImageBrushを指定できる(XAMLでもできるかも)


BindingのPath指定で入力候補が出るから打ち間違いが減る
イメージ 4
XAMLだとBrushを指定するとき入力候補がでないけど


イメージ 5
コードならnameofを使えるので候補が出るからラク
nameofが使えるってことは、ソースの名前変更したとき自動で変更してくれる


イメージ 8
ソース元の名前を名前の変更から


イメージ 6
変更すると


イメージ 7
自動で変更される、かしこい




ギットハブ
アプリのダウンロード先(ヤフーボックス)


関連記事、
前回2019/3/28はおととい
画像の使用色数とその色のピクセル数を表示するアプリその4 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15916440.html

2019/3/29は昨日
無限の透明市松模様をWriteableBitmapとImageBrushのタイル表示で作成 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15917385.html

2019/03/30はさっき
ListBoxのItemTemplate(DataTemplate)をC#コードで ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15918212.html



イメージ 1



デザイン画面
MainWindow.xaml
イメージ 2



MainWindow.xaml.cs

using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;


//ListBoxの要素全部に同じ背景画像(市松模様)を表示したい
//要素の表示方法変更はDataTemplateを使う
//コードでDataTemplateを作成すれば任意の背景画像を指定できる
namespace _20190329_ListBoxのDataTemplateをコードで
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

List<int> myData = new List<int>() { 12, 345, 6789, 0 };
DataContext = myData;

//コードでDataTemplate設定
MyListBox.ItemTemplate = CreateDataTemplate();
}

//DataTemplate作成
private DataTemplate CreateDataTemplate()
{
//市松模様ブラシ作成
ImageBrush myPattern = MakeTileBrush(MakeCheckeredPattern(10, Colors.LightGray));
//市松模様表示用にBorder作成
var eBorder = new FrameworkElementFactory(typeof(Border));
eBorder.SetValue(Border.BackgroundProperty, myPattern);//背景市松模様
eBorder.SetValue(WidthProperty, 100.0);
eBorder.SetValue(HeightProperty, 20.0);

//値表示用にTextBlock作成
var eTextBlock = new FrameworkElementFactory(typeof(TextBlock));
//表示する値はBindingしたものにする設定
eTextBlock.SetBinding(TextBlock.TextProperty, new Binding());
//eTextBlock.SetValue(TextBlock.BackgroundProperty, myPattern);//背景市松模様

//上の2つを入れるStackPanel作成、スタック方向はHorizontal
var eStackPanel = new FrameworkElementFactory(typeof(StackPanel));
eStackPanel.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
eStackPanel.AppendChild(eBorder);
eStackPanel.AppendChild(eTextBlock);

//DataTemplate作成、VisualTreeに上のStackPanelを指定で完成
var dt = new DataTemplate();
dt.VisualTree = eStackPanel;
return dt;
}



/// <summary>
/// 市松模様画像作成
/// </summary>
/// <param name="cellSize">タイル1辺のサイズ</param>
/// <param name="gray">白じゃない方の色指定</param>
/// <returns></returns>
private WriteableBitmap MakeCheckeredPattern(int cellSize, Color gray)
{
int width = cellSize * 2;
int height = cellSize * 2;
var wb = new WriteableBitmap(width, height, 96, 96, PixelFormats.Rgb24, null);
int stride = wb.Format.BitsPerPixel / 8 * width;
byte[] pixels = new byte[stride * height];
int p = 0;
Color iro;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
if ((y < cellSize & x < cellSize) | (y >= cellSize & x >= cellSize))
{
iro = Colors.White;
}
else { iro = gray; }

p = y * stride + x * 3;
pixels[p] = iro.R;
pixels[p + 1] = iro.G;
pixels[p + 2] = iro.B;
}
}
wb.WritePixels(new Int32Rect(0, 0, width, height), pixels, stride, 0);
return wb;
}

/// <summary>
/// BitmapからImageBrush作成
/// 引き伸ばし無しでタイル状に敷き詰め
/// </summary>
/// <param name="bitmap"></param>
/// <returns></returns>
private ImageBrush MakeTileBrush(BitmapSource bitmap)
{
var imgBrush = new ImageBrush(bitmap);
imgBrush.Stretch = Stretch.Uniform;//これは必要ないかも
//タイルモード、タイル
imgBrush.TileMode = TileMode.Tile;
//タイルサイズは元画像のサイズ
imgBrush.Viewport = new Rect(0, 0, bitmap.Width, bitmap.Height);
//タイルサイズ指定方法は絶対値、これで引き伸ばされない
imgBrush.ViewportUnits = BrushMappingMode.Absolute;
return imgBrush;
}

}
}



イメージ 3
ListBoxの要素の見た目変更でItemTemplateのDataTemplate
XAMLで書いていた、19〜24行目
これをコードで書くと
イメージ 4
こう、長くなる
違うのはBorderのBackground
XAMLではColors.Snowだったのを
WriteableBitmapで作った市松模様のImageBrushにしているところ、37行目
ホントはこれがXAMLでできればよかったんだけど、わからなかったのでコードで書くことになった

DataTemplate
  • 要素の作成はFrameworkElementFactoryにtypeofで種類を指定
  • プロパティの指定はSetValue
  • Panel要素の中に入れるときはAppendChild



参照したところ
Template をコードで組み立てる - present
https://tnakamura.hatenablog.com/entry/20081014/1225084186



ギットハブ


関連記事、2019/03/29は昨日
無限の透明市松模様をWriteableBitmapとImageBrushのタイル表示で作成 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15917385.html

2019/03/30は同日
画像の使用色数とその色のピクセル数を表示するアプリその5 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15918266.html


2016/5/21は3年前
WPFとVB.NET、ControlTemplateをコードで作成 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/14156250.html
同じことしているなあw


ウィンドウのサイズに合わせて背景の市松模様が表示される
イメージ 1
どこまでも続く透明市松模様


デザイン画面
MainWindow.xaml
イメージ 2
GridにMyGridっていう名前をつけただけ


MainWindow.xaml.cs

using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace _20190328_透明市松模様作成タイル表示
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

WriteableBitmap bitmap = MakeCheckeredPattern(10, Colors.LightGray);
MyGrid.Background = MakeTileBrush(bitmap);
}

/// <summary>
/// 市松模様画像作成
/// </summary>
/// <param name="cellSize">タイル1辺のサイズ</param>
/// <param name="gray">白じゃない方の色指定</param>
/// <returns></returns>
private WriteableBitmap MakeCheckeredPattern(int cellSize, Color gray)
{
int width = cellSize * 2;
int height = cellSize * 2;
var wb = new WriteableBitmap(width, height, 96, 96, PixelFormats.Rgb24, null);
int stride = wb.Format.BitsPerPixel / 8 * width;
byte[] pixels = new byte[stride * height];
int p = 0;
Color iro;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
if ((y < cellSize & x < cellSize) | (y >= cellSize & x >= cellSize))
{
iro = Colors.White;
}
else { iro = gray; }

p = y * stride + x * 3;
pixels[p] = iro.R;
pixels[p + 1] = iro.G;
pixels[p + 2] = iro.B;
}
}
wb.WritePixels(new Int32Rect(0, 0, width, height), pixels, stride, 0);
return wb;
}

/// <summary>
/// BitmapからImageBrush作成
/// 引き伸ばし無しでタイル状に敷き詰め
/// </summary>
/// <param name="bitmap"></param>
/// <returns></returns>
private ImageBrush MakeTileBrush(BitmapSource bitmap)
{
var imgBrush = new ImageBrush(bitmap);
imgBrush.Stretch = Stretch.None;//これは必要ないかも
//タイルモード、タイル
imgBrush.TileMode = TileMode.Tile;
//タイルサイズは元画像のサイズ
imgBrush.Viewport = new Rect(0, 0, bitmap.PixelWidth, bitmap.PixelHeight);
//タイルサイズ指定方法は絶対値、これで引き伸ばされない
imgBrush.ViewportUnits = BrushMappingMode.Absolute;
return imgBrush;
}

}
}


市松模様の画像をWriteableBitmapで作成して
その画像からImageBrushを作成、ブラシの設定を引き伸ばしなしのタイルに設定
そのブラシを背景に設定



市松模様の画像をWriteableBitmapで作成
イメージ 3
16行目で26行目から市松模様画像作成
引数の10は市松模様のマス(セル)の1辺の長さ、Colors.LightGrayは模様の色

白と、指定した色のマスを交互に置いて合計4つのマス
背景が白だから判りづらいw

セルサイズの2倍の画像を作成するので縦横2倍、28,29行目
左上と右下を白、それ以外を指定した色にしたいから
画像のピクセル位置x,yが
共に0〜セルサイズ未満のとき、または
共にセルサイズ以上のとき
白にして、それ以外の時を指定した色にする
これが39〜43行目

これでできあがる画像は
イメージ 4
これ


あとはこの画像をタイル状に敷き詰めれば市松模様になる
ImageBrushは画像からブラシを作成できる
Brushには敷き詰めた状態で表示するタイルモードがある

画像からImageBrushを作成、ブラシの設定を引き伸ばしなしのタイルに設定
イメージ 5
この設定で目的のブラシができたけど、よくわかっていない
ImageBrushの設定で必要だったのは以下の3つ
  • TileModeをTile
  • ViewportにするRectのサイズをタイルにする画像サイズにする
  • ViewportUnitsをAbsolute


失敗例
イメージ 6
元画像を引き伸ばし無しでタイル状に敷き詰めたブラシにするから
それっぽいプロパティをそれっぽく指定して
StretchをNone ブラシの引き伸ばしなし
TileModeをTile タイルモードをタイル
これで実行すると

イメージ 7
違う
タイルモードはあっていると思うからStretchが違うのかなあと
イメージ 16
StretchをUniformにしてみたら
イメージ 17
これも違う


ググって流れ変わる
方法: TileBrush のタイル サイズを設定する | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/graphics-multimedia/how-to-set-the-tile-size-for-a-tilebrush
ViewportとViewportUnitsでタイルのサイズを決めるみたい、これが必要だった


Viewport
イメージ 9
これでタイルの位置とサイズを設定できる
作っているのはImageBrushなんだけど、説明見るとこれはTileBrush用?
引き伸ばしされたくないのでタイルのサイズは元画像と同じに指定


VIewportUnits
イメージ 8
Viewportで指定した数値をどう受け取るかの設定みたい
2種類しかない、絶対値(Absolute)指定か相対値指定っぽい
指定しないときの初期値はRelativeになっていたので
ここはAbsoluteを選択して

イメージ 10
┗(゜ω ゜)┛
[答 無限透明市松模様 ]

あとAbsoluteでサイズ指定したせいか、引き伸ばし設定のStretchは無視されるみたいなのでいらないかも
イメージ 13
66行目、この状態でも正しく表示される



RelativeToBoundingBox
イメージ 11
ViewportUnitsをRelativeToBoundingBox
ViewportをRect(0,0,0.2,0.2)
これだと

イメージ 12
Relativeにして0.2を指定すると0.2ごとの場所に表示されるみたい
こういうのも面白いねえ



セルサイズと色の変更
イメージ 14
セルサイズを50、色をトマトで実行

イメージ 15



2019/03/30追記
WPF のブラシの概要 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/graphics-multimedia/wpf-brushes-overview
ここにあるDrawingBrush、こっちのほうがいいかも?
追記ここまで


ギットハブ
関連記事、2019/03/30は明日
画像の使用色数とその色のピクセル数を表示するアプリその5 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15918266.html

ボタン3つ追加した
イメージ 4



降順、昇順の切り替え
イメージ 1


画像の等倍表示と縮小表示の切り替え
イメージ 3


リストの背景色切り替え
イメージ 2
白→灰色→黒→白に戻る
これで白色グラフも見えるようになった


ギットハブ

ダウンロード先(ヤフーボックス)




関連記事
前回はおとといの3/26
画像の使用色数を表示するアプリその3 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15914719.html

次回2019/03/30は明後日
画像の使用色数とその色のピクセル数を表示するアプリその5 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15918266.html



全197ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 前のページ | 次のページ ]

本文はここまでですこのページの先頭へ
みんなの更新記事