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
160
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
58
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
72
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
33
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
39
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
36
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
55
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
37
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
hachiilcane
0
65
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
67
Other Decks in Programming
See All in Programming
型で語るカタ
irof
1
880
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
35
10k
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
4
530
[Codecon - 2025] Como não odiar seus testes
camilacampos
0
100
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
210
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
15
8.8k
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1k
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
1k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
230
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
110
Go製CLIツールをnpmで配布するには
syumai
1
930
GPUを計算資源として使おう!
primenumber
1
300
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
Visualization
eitanlees
146
16k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Typedesign – Prime Four
hannesfritz
42
2.7k
Optimizing for Happiness
mojombo
379
70k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Raft: Consensus for Rubyists
vanstee
140
7k
Faster Mobile Websites
deanohume
308
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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ΛཔΓʹ͕ΜΓ·͠ΐ͏ʂ