SlideShare une entreprise Scribd logo
1  sur  14
dotnetConf関西 2017 – LT
XAMLで条件分岐
tmyt
2017/10/14 (Sat.)
わたしは
• tmyt (a.k.a.津守)
• Microsoft MVP for Windows Development(Jan. 2011 – Jul. 2018)
• http://blog.tmyt.jp/
• 最近会社やめました
条件分岐…?
• 昔こういうのを作りました
• http://blog.tmyt.jp/entry/2015/08/11/221312
• http://blog.tmyt.jp/entry/2014/07/07/020345
• http://blog.tmyt.jp/entry/2013/12/23/001907
• https://gist.github.com/tmyt/c8b8667ab3087223722e
いいえ
• Conditional XAMLです
• https://docs.microsoft.com/en-us/windows/uwp/debug-test-
perf/conditional-xaml
Conditional XAML
• XAMLに条件分岐を持ち込むもの
• Build:15063から使えました
• XML名前空間を付けて条件分岐を追加できます
• プロパティの設定
• インスタンスの生成
使い方
• XML名前空間に条件を書き足します
• Ex)ApiContractが5以上の時
• IsApiContractPresent(Windows.Foundation.UniversalApiContract,5)
• Ex) ApiContractが5以下の時
• IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,5)
• Ex)いつものxmlnsに条件をつけ足した場合
• xmlns:16299=“http://schemas.microsoft.com/winfx/2006/xaml/presen
tation?IsApiContractPresent(Windows.Foundation.UniversalApiContrac
t,5)”
DEMO
• Property
• <TextBlock cu:Text=“Build 15063” fcu:Text=“Build 16299” />
• Instantiation
• <Grid>
<cu:TextBlock Text=“Build 15063” />
<fcu:TextBlock Text=“Build 16299” />
</Grid>
おまけ
• XAMLの制約上動かない書き方が結構ありました
動かない
• The property 'Windows.UI.Xaml.Controls.TextBlock.Text' is
set more than once. [Line: 20 Position: 24]'
• <TextBlock FontSize=“72“
Text="Run on Creators Update!“
build16299:Text="Run on Fall Creators Update!" />
これも動かない
• Duplication assignment to the ‘Child’ property of the ‘Border’
object
• <Border>
<build15063:Button />
<build16299:TextBox />
</Border>
これも動かない
• This Member ‘Background’ has more tha one item, use the
Items property
• <Button.Background>
<build15063:SolidColorBrush Color="Red" />
<build16299:AcrylicBrush
BackgroundSource="HostBackdrop" TintOpacity="0.6"
TintColor="Red" FallbackColor="Red" />
</Button.Background>
これも動かない
• XamlCompiler error WMC0151: Type
'Windows.UI.Xaml.Media.AcrylicBrush' is defined under
contract 'Windows.Foundation.UniversalApiContract' version
'5.0.0.0', but the contract version for the targeted min version
is '4.0.0.0’!
つづき
• <build15063:Button.Background>
<SolidColorBrush Color="Red" />
</build15063:Button.Background>
<build16299:Button.Background>
<AcrylicBrush BackgroundSource="HostBackdrop"
TintOpacity="0.6" TintColor="Red" FallbackColor="Red" />
</build16299:Button.Background>
15063上で実行時に起動できない
• <build15063:Button.Background>
<SolidColorBrush Color="Red" />
</build15063:Button.Background>
<build16299:Button.Background>
<build16299:AcrylicBrush
BackgroundSource="HostBackdrop" TintOpacity="0.6"
TintColor="Red" FallbackColor="Red" />
</build16299:Button.Background>

Contenu connexe

Similaire à XAMLで条件分岐

Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみるYusuke Naka
 
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門Masakazu Muraoka
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical previewMasaki Yamamoto
 
Java script testing framework for around html5 studies-
Java script testing framework for  around html5 studies-Java script testing framework for  around html5 studies-
Java script testing framework for around html5 studies-Jun Saeki
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Kazushi Kamegawa
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineKazushi Kamegawa
 
改めまして、Cognitive ToolKit です。
 改めまして、Cognitive ToolKit です。 改めまして、Cognitive ToolKit です。
改めまして、Cognitive ToolKit です。Ryuichi Tokugami
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9Satoshi Fujimoto
 
Tizenの.NET対応について
Tizenの.NET対応についてTizenの.NET対応について
Tizenの.NET対応についてShinya Nakajima
 
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチViewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチTakao Sumitomo
 
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話DevTakas
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
VSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンVSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンKazuhide Maruyama
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはgoccy
 
ディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable Typeディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable TypeYasufumi Nishiyama
 
Visual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CDVisual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CDShinya Nakajima
 

Similaire à XAMLで条件分岐 (20)

Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみる
 
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical preview
 
Java script testing framework for around html5 studies-
Java script testing framework for  around html5 studies-Java script testing framework for  around html5 studies-
Java script testing framework for around html5 studies-
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
 
改めまして、Cognitive ToolKit です。
 改めまして、Cognitive ToolKit です。 改めまして、Cognitive ToolKit です。
改めまして、Cognitive ToolKit です。
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
 
Tizenの.NET対応について
Tizenの.NET対応についてTizenの.NET対応について
Tizenの.NET対応について
 
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチViewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
 
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
VSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンVSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオン
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
 
ディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable Typeディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable Type
 
Visual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CDVisual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CD
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 

Plus de Yutaka Tsumori

未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないためにYutaka Tsumori
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完Yutaka Tsumori
 
Windows phoneの新しい通知api
Windows phoneの新しい通知apiWindows phoneの新しい通知api
Windows phoneの新しい通知apiYutaka Tsumori
 
せっけーのおはなし
せっけーのおはなしせっけーのおはなし
せっけーのおはなしYutaka Tsumori
 
Community Open Day 沖縄
Community Open Day 沖縄Community Open Day 沖縄
Community Open Day 沖縄Yutaka Tsumori
 
Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Yutaka Tsumori
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!Yutaka Tsumori
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!Yutaka Tsumori
 
Twitter Client for ZSH
Twitter Client for ZSHTwitter Client for ZSH
Twitter Client for ZSHYutaka Tsumori
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJavaYutaka Tsumori
 
20120922 wdc with_ms_like
20120922 wdc with_ms_like20120922 wdc with_ms_like
20120922 wdc with_ms_likeYutaka Tsumori
 
某Music unなんとか
某Music unなんとか某Music unなんとか
某Music unなんとかYutaka Tsumori
 
Androidのおはなし++
Androidのおはなし++Androidのおはなし++
Androidのおはなし++Yutaka Tsumori
 

Plus de Yutaka Tsumori (20)

Buri2019
Buri2019Buri2019
Buri2019
 
Setsな話
Setsな話Setsな話
Setsな話
 
BuriKaigi2018
BuriKaigi2018BuriKaigi2018
BuriKaigi2018
 
未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために
 
Blync light for HACK
Blync light for HACKBlync light for HACK
Blync light for HACK
 
Aristeaのこと
AristeaのことAristeaのこと
Aristeaのこと
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完
 
Windows phoneの新しい通知api
Windows phoneの新しい通知apiWindows phoneの新しい通知api
Windows phoneの新しい通知api
 
せっけーのおはなし
せっけーのおはなしせっけーのおはなし
せっけーのおはなし
 
Community Open Day 沖縄
Community Open Day 沖縄Community Open Day 沖縄
Community Open Day 沖縄
 
Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Twitter Client for ZSH (2)
Twitter Client for ZSH (2)
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!
 
PhoneからPCへ。
PhoneからPCへ。PhoneからPCへ。
PhoneからPCへ。
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
Twitter Client for ZSH
Twitter Client for ZSHTwitter Client for ZSH
Twitter Client for ZSH
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJava
 
20120922 wdc with_ms_like
20120922 wdc with_ms_like20120922 wdc with_ms_like
20120922 wdc with_ms_like
 
某Music unなんとか
某Music unなんとか某Music unなんとか
某Music unなんとか
 
たのアプLt
たのアプLtたのアプLt
たのアプLt
 
Androidのおはなし++
Androidのおはなし++Androidのおはなし++
Androidのおはなし++
 

Dernier

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Dernier (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

XAMLで条件分岐