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
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WPF勉強会 第5回 テンプレート/WPFStudy5
WPF勉強会 第5回 テンプレート
説明後に実演するライブコーディングのコードはこちら。
https://github.com/hachiilcane/WpfStudy
hachiilcane
March 01, 2022
More Decks by hachiilcane
See All by hachiilcane
機械学習勉強会01 1次関数での回帰分析/MLStudy01
hachiilcane
0
66
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
100
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
40
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
44
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
45
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
59
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
44
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
hachiilcane
0
74
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
72
Other Decks in Programming
See All in Programming
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
VibeCodingからAgenticWorkflowへ
starfish719
0
670
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
メールのエイリアス機能を履き違えない
isshinfunada
0
240
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
570
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.8k
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.8k
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
210
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
480
源内ハンズオン概要編
hideg
0
190
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
820
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Designing Experiences People Love
moore
143
24k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
KATA
mclloyd
PRO
35
15k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
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ΛཔΓʹ͕ΜΓ·͠ΐ͏ʂ