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
Fragmented Architectures
denyspoltorak
0
150
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
6k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
200
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
CSC307 Lecture 05
javiergs
PRO
0
500
Patterns of Patterns
denyspoltorak
0
1.4k
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
160
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
180
CSC307 Lecture 09
javiergs
PRO
1
830
AI & Enginnering
codelynx
0
110
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.7k
For a Future-Friendly Web
brad_frost
182
10k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
130
Automating Front-end Workflow
addyosmani
1371
200k
The SEO Collaboration Effect
kristinabergwall1
0
350
A designer walks into a library…
pauljervisheath
210
24k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Designing Powerful Visuals for Engaging Learning
tmiket
0
220
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Unsuck your backbone
ammeep
671
58k
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ΛཔΓʹ͕ΜΓ·͠ΐ͏ʂ