Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WPF勉強会 第5回 テンプレート/WPFStudy5
Search
hachiilcane
March 01, 2022
Programming
0
170
WPF勉強会 第5回 テンプレート/WPFStudy5
WPF勉強会 第5回 テンプレート
説明後に実演するライブコーディングのコードはこちら。
https://github.com/hachiilcane/WpfStudy
hachiilcane
March 01, 2022
Tweet
Share
More Decks by hachiilcane
See All by hachiilcane
機械学習勉強会01 1次関数での回帰分析/MLStudy01
hachiilcane
0
60
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
77
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
37
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
41
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
41
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
56
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
39
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
hachiilcane
0
66
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
69
Other Decks in Programming
See All in Programming
AI & Enginnering
codelynx
0
110
AtCoder Conference 2025
shindannin
0
1k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
700
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1k
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
Fluid Templating in TYPO3 14
s2b
0
130
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
CSC307 Lecture 08
javiergs
PRO
0
670
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
200
Skip the Path - Find Your Career Trail
mkilby
0
53
My Coaching Mixtape
mlcsv
0
46
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
How to make the Groovebox
asonas
2
1.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
WPFษڧձ ୈ5ճ ςϯϓϨʔτ
ࠓ֮͑ͯ΄͍͜͠ͱ ςϯϓϨʔτΛ࡞Βͳͯ͘ࡁΉͳΒશ ྗͰಀ͛Δ Ұ͔ΒControlTemplateΛ࡞Βͳ͍ʂ DataTemplateͱControlTemplate༻్ ͕ҧ͏
ςϯϓϨʔτͱ WPFͷControlTemplateϓϩύςΟΛ࣋ͬͯ ͍Δ طఆͷςϯϓϨʔτΛಠࣗʹσβΠϯͨ͠ς ϯϓϨʔτͱࠩ͠ସ͑Δͱɺ֎؍Λࣗ༝ʹม ͑ΒΕΔʂ ςϯϓϨʔτΛม͑ͯɺϚεॲཧͳͲ ͷجຊػೳมΘΒͳ͍
طଘͷςϯϓϨʔτΛݟ ͯΈΔ TemplateϓϩύςΟ͔Β ControlTemplateΛऔΓग़͢ [υΩϡϝϯτΞτϥΠϯ]͔ΒӈΫ ϦοΫ - [ςϯϓϨʔτͷฤू] - [ίϐʔ
ͯ͠ฤू]
͍ํ ControlTemplateΛXAMLͰఆٛͯ͠ɺ TemplateϓϩύςΟʹηοτ͢Ε֎؍ Λ͕ΒΓͱม͑ΒΕΔʂ ͍͍ͨͯStyleͱͯ͠ఆٛ͢Δ
ҙ ControlTemplateΛ࡞Γ࢝Ίͨ࣌Ͱɺطఆͷςϯ ϓϨʔτશʹͳ͘ͳΔ ݟۭͨʹͳΔ ϚεΦʔόʔ࣌ΫϦοΫ࣌ͷมԽͳͲ͢ ͯͳ͘ͳΔ Ұ࡞Γ࢝ΊͨΒɺҰ௨Γ࡞Γ͞ͳ͍ͱ͔͑ͬ ͯΈ͢΅Β͘͠ͳΔʂ
खΛ͚ͳ͍༐ؾඞཁ ຊʹςϯϓϨʔτΛ͍͡Βͳ͍ͱ͍ ͚ͳ͍ͷ͔ৼΓฦΖ͏ ςʔϚͷద༻ͰࡁΉͳΒͦΕͰࡁ·ͤΑ ͏
߹͍ݴ༿ ςϯϓϨʔτΛ͍͡ΔͳΒ࠷ޙ·Ͱ͋ ͖ΒΊͳ͍ʂ
ςʔϚͬͯʁ WPFඪ४Ͱ༻Ͱ͖ΔશͯͷControlʹରͯ͠ɺ౷ҰతͳσβΠϯΛ ࢪͨ͠Styleͷू߹ମʢϦιʔεʣ େશ෦ͷControlͷContentTemplateΛ͍͍ͬͯ͡Δ ੲςʔϚͱ͍͏ݴ͍ํͰϦιʔεσΟΫγϣφϦͷϑΝΠϧ͕ެ ։͞Ε͍͕ͯͨɺݱࡏͩͱ౷߹తͳݟͨʴศརͳಠࣗControl͕ ηοτʹͳͬͨҎԼͷΑ͏ͳϥΠϒϥϦΛΠϯετʔϧͯ͠͏͜ ͱ͕ଟ͍ɻ Material Design
in XAML Toolkit MahApps.Metro
͜ΕςϯϓϨʔτඞ ཁʁ̍ จࣈ৭Λม͍͑ͨ
͜ΕςϯϓϨʔτඞ ཁʁ̍ จࣈ৭Λม͍͑ͨ ͍Γ·ͤΜʂ <Button Content="Button" Foreground="#FFC70BDA"/>
ϓϩύςΟΛ͍͡Ε ͍͍ύλʔϯ ϓϩύςΟͷΛม͑ΕࡁΉ͜ͱͳ ΒͦΕͰOK MSDNΛಡΜͰϓϩύςΟΛ୳ͦ͏ʂ ͪΖΜStyleͰઃఆͯ͠Α͍
͜ΕςϯϓϨʔτඞ ཁʁ̎ ϘλϯͷதʹϘλϯ͕͋Δ
͜ΕςϯϓϨʔτඞ ཁʁ̎ ϘλϯͷதʹϘλϯ͕͋Δ ͍Γ·ͤΜʂ <Button> <Grid> <TextBlock TextWrapping="Wrap" Text="Button" FontSize="36"
HorizontalAlignment="Center"/> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <Button Content="Button" Margin="3,12,3,0" VerticalAlignment="Center"/> <Button Content="Button" Margin="3,12,3,0" VerticalAlignment="Center"/> </StackPanel> </Grid> </Button>
ContentΛ͍͡Ε͍͍ ύλʔϯ ContentϓϩύςΟΛ͍࣋ͬͯΔͳΒɺ ࢠཁૉͱͯ͠ͲΜͳControlͰೖΕΒ ΕΔ Content୯Ұཁૉ͔͠ೖΕΒΕͳ͍ ͔Βɺ͍Ζ͍Ζஔ͍ͨ͠߹ύ ωϧʹ͘ΔΉ
͜ΕςϯϓϨʔτඞ ཁʁ̏ ListBoxͷߦΛΧελϚΠζ͍ͨ͠
͜ΕςϯϓϨʔτඞ ཁʁ̏ ListBoxͷߦΛΧελϚΠζ͍ͨ͠ ͍Γ·ͤΜʂ <ListBox Grid.Column="1"> <ListBox.ItemTemplate> <DataTemplate DataType="System:String"> <Grid>
<Border BorderThickness="8,2,2,2" BorderBrush="Red"> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding}"/> <ProgressBar Width="60" Value="45"/> </StackPanel> </Border> </Grid> </DataTemplate> </ListBox.ItemTemplate> <System:String>͢Ϳͨ</System:String> <System:String>ͪΌʔΜ</System:String> <System:String>ͬΆ͏͍͞</System:String> </ListBox>
DataTemplateΛ͍͑ ͍ύλʔϯ ίϨΫγϣϯΛදࣔ͢ΔControlͳΒɺද ࣔ͢ΔதDataTemplateͰม͑ΒΕΔ DataTemplateɺͱͱදࣔͷํ͕ ఆٛ͞Εͯͳ͍ͷΛఆٛ͢Δͷ ControlTemplateͱͱఆٛ͞Εͯ ͍ΔͷΛ͋͑ͯ࠶ఆٛ͢Δͷ
͜ΕςϯϓϨʔτඞ ཁʁ̐ ϚεΦʔόʔ࣌ͷݟͨͷมԽΛม͑ ͍ͨ
͜ΕςϯϓϨʔτඞ ཁʁ̐ ϚεΦʔόʔ࣌ͷݟͨͷมԽΛม͑ ͍ͨ ͨͿΜ͍Γ·͢ʂ
τϦΨʔΛม͍͑ͨύ λʔϯ StyleͰτϦΨʔΛ͢͜ͱͰ͖Δ ͕ɺطఆͷಈ࡞ΛόοςΟϯά͢ΔՄ ೳੑ͋Δ ςϯϓϨʔτΛ࡞ͬͨํ͕҆৺͔͠ Εͳ͍
͜ΕςϯϓϨʔτඞ ཁʁ̑ Ϙλϯ͕ପԁܗ νΣοΫϘλϯͷ࢛֯ͷதʹจࣈྻ ͜Ε·Ͱʹແ͍UIͷεΫϩʔϧόʔ
ͦͦͷ֎؍Λม͑ͨ ͍ύλʔϯ ͜Ε͏ςϯϓϨʔτͷग़൪ʂ
ςϯϓϨʔτͷ࡞Γํ ςϯϓϨʔτͷXAMLΛҰ͔ΒࣗͰॻ ͘ͷແཧʂ طఆͷςϯϓϨʔτɺςʔϚͷதʹ ͋ΔςϯϓϨʔτΛվ͠Α͏ʂ
ෳࡶͳςϯϓϨʔτ ͱͱෳࡶͳίϯτϩʔϧ ControlTemplateෳ߹ܕͰෳࡶ
͋ͱ…… MSDNΛཔΓʹ͕ΜΓ·͠ΐ͏ʂ