かずきのBlog

C#やJavaやRubyとメモ書き

目次

Blog 利用状況

ニュース

わんくまBlogが不安定になったため、前に書いてたはてなダイアリーにメインを移動します。
かずきのBlog@Hatena
技術的なネタは、こちらにも、はてなへのリンクという形で掲載しますが、雑多ネタははてなダイアリーだけに掲載することが多いと思います。
コメント
プログラマ的自己紹介
お気に入りのツール/IDE
プロフィール
経歴
広告
アクセサリ

書庫

日記カテゴリ

[WPF]ControlTemplateに挑戦

今日は、コントロールの見た目を完全に?制御できるというコントロールテンプレートにチャレンジしてみたいと思います。
巷でよく見かける、WPFのデモとかの丸いボタンとかは、多分この方法で作られてるはず!

何事もまず単純なところからスタート!!
ってことで、ボタンがあるだけのウィンドウを1つこさえました。

Window1.xaml
<Window x:Class="WpfStepByStep.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ControlTemplate" Height="150" Width="150">
    <Grid Margin="10">
        <Button Content="Hello world" />
    </Grid>
</Window>

なんて名前でプロジェクト作ったのかバレバレだけど気にしない。
いらないとは思うけど一応before/afterのために実行結果をのせておく。

ControlTempalte適用前
image 

早速コントロールテンプレートをかけてみようと思う。
ボタンのTemplateプロパティにControlTemplateを設定するがよろしいとのお告げを見つけたので、やってみました。
とりあえず無難にRectangleを設定!

コントロールテンプレートを適用したWindow1.xaml
<Window x:Class="WpfStepByStep.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ControlTemplate" Height="150" Width="150">
    <Grid Margin="10">
        <Button Content="Hello world">
            <Button.Template>
                <ControlTemplate>
                    <Rectangle Fill="Red" />
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</Window>

実行すると、ボタンが真っ赤な四角形になります。
スクリーンショットじゃわからないけど、押してもボタン特有のプッシュした感じも無くなってる。
image

さて、これを頑張ってボタンっぽくしたい。
ボタンのテンプレート差し替えたのにボタンっぽくしたいってどういうことだ!って言われそうだけど、ボタンなんだからボタンらしく動かしたいと思うのが人情。
とりあえず背景色からそれっぽく染めていこうと思う。
あっついでに、四角だとつまらないから楕円にしておいた。

ボタンっぽい色
<Window x:Class="WpfStepByStep.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ControlTemplate" Height="150" Width="150">
    <Grid Margin="10">
        <Button Content="Hello world">
            <Button.Template>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Ellipse Fill="{TemplateBinding Property=Background}" />
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</Window>

今回変わったところは、赤色の部分。
ControlTemplateのTargetType属性を追加したのは、その下のTemplateBindingを使うときにボタンにあるプロパティ名を指定しやすくするため。
これがないと、コントロール名.プロパティ名と書かねばならぬこともあるとか。

さて、TemplateBindingですが見た目をのっとったコントロールのプロパティに対してバインドするときに使います。
この例だと、Elipseの塗りつぶしの色がボタンの背景色と同じになる。
実行してみると、確かに同じになってるのが確認できる。

image

Strokeプロパティに適当な色を設定したらそれっぽくなるだろう。
まだ、ボタンらしいペコってへこむ感じとコンテンツが空だけど時間切れ…おやすみなさい。

投稿日時 : 2007年10月23日 0:25

Feedback

# [WPF]ControlTemplateに挑戦 その2 2007/10/24 23:11 かずきのBlog

[WPF]ControlTemplateに挑戦 その2

# louis vuitton diaper bag 2012/10/28 3:41 http://www.louisvuittonoutletdiaperbag.com/

Take pleasure in might primarily happy also fine solution associated with people survival.
louis vuitton diaper bag http://www.louisvuittonoutletdiaperbag.com/

# louis vuitton outlet 2012/10/28 3:55 http://www.louisvuittonoutletbags2013.com/

Don‘testosterone waste your energy and time for a humans/young lady,what people isn‘testosterone willing to waste ones own instance on you.
louis vuitton outlet http://www.louisvuittonoutletbags2013.com/

# louis vuitton outlet 2012/10/28 4:08 http://www.louisvuittonwallets2013.com/

Due to the fact anybody doesn‘testosterone levels adore you job desire them in order to really,doesn‘testosterone levels make they'll wear‘testosterone levels adore you along with there is.
louis vuitton outlet http://www.louisvuittonwallets2013.com/

# louis vuitton outlet store 2012/10/28 4:19 http://www.louisvuittonbackpack2013.com/

Factual friendship foresees the needs of other useful versus proclaim it happens to be purchase.
louis vuitton outlet store http://www.louisvuittonbackpack2013.com/

# cheap burberry bags 2012/10/28 14:09 http://www.burberryoutletonlineshopping.com/burber

It is truly a great and useful piece of information. I am happy that you just shared this useful information with us. Please stay us up to date like this. Thanks for sharing.
cheap burberry bags http://www.burberryoutletonlineshopping.com/burberry-tote-bags.html

# wallet 2012/10/28 14:13 http://www.burberryoutletscarfsale.com/accessories

I like this post, enjoyed this one thanks for posting .
wallet http://www.burberryoutletscarfsale.com/accessories/burberry-wallets-2012.html

# burberry scarf 2012/10/28 14:13 http://www.burberryoutletscarfsale.com/accessories

I'll right away grab your rss feed as I can't in finding your email subscription link or e-newsletter service. Do you have any? Please let me recognize so that I may just subscribe. Thanks.
burberry scarf http://www.burberryoutletscarfsale.com/accessories/burberry-scarf.html

# womens shirts 2012/10/28 14:13 http://www.burberryoutletscarfsale.com/burberry-wo

Thanks, I've just been searching for info approximately this subject for a long time and yours is the greatest I've came upon so far. But, what concerning the bottom line? Are you sure concerning the source?
womens shirts http://www.burberryoutletscarfsale.com/burberry-womens-shirts.html

# burberry watches on sale 2012/10/28 14:13 http://www.burberryoutletscarfsale.com/accessories

You have brought up a very wonderful details , regards for the post.
burberry watches on sale http://www.burberryoutletscarfsale.com/accessories/burberry-watches.html

# burberry mens shirts 2012/10/28 14:13 http://www.burberryoutletscarfsale.com/burberry-me

I view something really special in this site.
burberry mens shirts http://www.burberryoutletscarfsale.com/burberry-men-shirts.html

# GnBgIWdbaHV 2014/07/17 15:19 http://crorkz.com/

lqsihM Wow, great blog article.Thanks Again. Great.

# iRrPbpcalVKPpedpWC 2014/08/02 0:42 http://crorkz.com/

mbUacw Im thankful for the article.Really looking forward to read more.

# ZGzPUGSPjQRPjzdNLbT 2014/09/09 20:59 http://www.designingdigitally.com

I savour, result in I found just what I was having a look for. You've ended my four day long hunt! God Bless you man. Have a great day. Bye

# lWxSzvqMMyVuSOJ 2014/09/15 10:23 http://www.theboatonlinestore.com/

I will right away seize your rss as I can't to find your e-mail subscription link or newsletter service. Do you have any? Please let me understand in order that I could subscribe. Thanks.

# HDZDLGoVLAifZPw 2014/09/16 8:03 http://ecommerce-for-business.com/

I used to be suggested this web site by way of my cousin. I am not positive whether this put up is written via him as nobody else recognise such exact about my difficulty. You are wonderful! Thanks!

# KEjQkZBPIedpwTmbIOt 2014/09/17 17:32 https://local.amazon.com/north-orange-county/B00NF

I used to be suggested this web site by my cousin. I'm not positive whether this post is written by him as no one else recognise such particular approximately my difficulty. You are amazing! Thanks!

# Wow, that's what I was exploring for, what a stuff! existing here at this website, thanks admin of this web page. 2018/09/13 11:03 Wow, that's what I was exploring for, what a stuff

Wow, that's what I was exploring for, what a stuff! existing here at this website, thanks admin of this web page.

# I simply could not leave your web site before suggesting that I really loved the usual info a person provide for your guests? Is going to be again ceaselessly in order to inspect new posts 2018/09/15 23:38 I simply could not leave your web site before sugg

I simply could not leave your web site before suggesting that I really loved the
usual info a person provide for your guests? Is going to be again ceaselessly in order to inspect new posts

# Приветик всем и спасибо за посещение моей анкеты. 2018/10/05 3:02 Приветик всем и спасибо за посещение моей анкеты.

Приветик всем и спасибо за
посещение моей анкеты.

# Touche. Outstanding arguments. Keep up the good effort. 2018/10/10 0:32 Touche. Outstanding arguments. Keep up the good ef

Touche. Outstanding arguments. Keep up the good effort.

# Hurrah! After all I got a website from where I be able to truly take helpful facts regarding my study and knowledge. 2018/10/27 22:30 Hurrah! After all I got a website from where I be

Hurrah! After all I got a website from where I be able to truly take
helpful facts regarding my study and knowledge.

# It's great that you are getting thoughts from this piece of writing as well as from our discussion made at this time. 2019/04/16 10:22 It's great that you are getting thoughts from this

It's great that you are getting thoughts from this piece of writing
as well as from our discussion made at this time.

# Actually no matter if someone doesn't understand afterward its up to other users that they will help, so here it happens. 2019/07/24 10:38 Actually no matter if someone doesn't understand a

Actually no matter if someone doesn't understand afterward its up
to other users that they will help, so here it happens.

# Actually no matter if someone doesn't understand afterward its up to other users that they will help, so here it happens. 2019/07/24 10:39 Actually no matter if someone doesn't understand a

Actually no matter if someone doesn't understand afterward its up
to other users that they will help, so here it happens.

# Actually no matter if someone doesn't understand afterward its up to other users that they will help, so here it happens. 2019/07/24 10:40 Actually no matter if someone doesn't understand a

Actually no matter if someone doesn't understand afterward its up
to other users that they will help, so here it happens.

# Actually no matter if someone doesn't understand afterward its up to other users that they will help, so here it happens. 2019/07/24 10:41 Actually no matter if someone doesn't understand a

Actually no matter if someone doesn't understand afterward its up
to other users that they will help, so here it happens.

# Sweet blog! I found it while surfing around on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I've been trying for a while but I never seem to get there! Many thanks 2019/08/14 15:55 Sweet blog! I found it while surfing around on Yah

Sweet blog! I found it while surfing around on Yahoo News.
Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get
there! Many thanks

# ルイ ヴィトン リメイク 東京 2022/09/01 13:18 cdepjvh@docomo.ne.jp

対応がとても早くて、驚きました。
梱包がとても綺麗で新品を購入したとは思えませんでした。
★ルイヴィトン★モノグラム★ノエ★巾着型ショルダーバッグ★M42224(旧型)★
とてもよい品でした。
ジャンク品に近い品を、破格値で購入したいと思って探していたところ、見つけたのがこのバッグでした。
誰が見ても一目でブランドバックだとわかる、ヴィトンのバッグでよれよれの使い古しを購入するのが私の望みでした。若い頃からずっと使っていると言えるし、雨の日でも濡れてももったいなくありません。
正直、にせものであっても、この価格ならあきらめもつくと考えていました。
(大きく商売をしている質屋さんでも、にせものを本物として高価買取をして、そのまま直営店で売っているケースもあります)
届いた商品を見てびっくりしました。
思っていたよりもずっと状態が良くて、自分で使うならまだまだ十分使えます。
それに、何よりも、本物のヴィトンだったことが一番うれしかったです。
刻印、製造番号他、自分で確かめたところ、すべてのチェックで合格でした。
新品とはいえ、4200円で本物のヴィトンが手に入るとは、思っていませんでした。
実質1315円での購入でした。
とても満足しています。
届いた日の翌日から使っています。毎日使っています。
若いときからずっと使っているのでよれよれになっていると言って、自慢しています。
ルイ ヴィトン リメイク 東京 https://www.gmt78.com/product/detail/12572.htm

# ロレックス レディース 限定 2022/09/01 13:29 hmxzag@hotmail.co.jp

2022年人気貴族エルメス コピー安心専門店、
一流ブランドショップ、シャネル コピー、
財布コピー、ベルト信用第一、良い品質、
低価格は私達のち残りの切り札です。
当社の商品は絶対の自信が御座います。
おすすめ人気N品質シリアル付きも有り
付属品完備!送料は無料です(日本全国)!
ご注文を期待しています!100%品質保証 
満足保。※日本國送料無料、信用第一、
ロレックス レディース 限定 https://www.gmt78.com/product/detail/13765.htm

# ルイ ヴィトン リメイク gba 2022/09/01 13:29 eimydipf@ybb.ne.jp

今回はとても気持ちの良いお買い物が出来て、感謝して居ります。
ありがとうございます。
お店の方の対応も丁寧で、お品物も良く、手書きのメッセージはとても嬉しかったです。またお世話になりたいと思います。
これからも素敵な魅力溢れるお店でいて下さいね。
ルイ ヴィトン リメイク gba https://www.kopijp.com/product/detail.aspx-id=11248.htm

# ハワイ ロレックス 値段 2022/09/01 13:30 oaxhwcqfugs@live.jp

配送も注文して次の日に届くし、丁寧で良心的にお手紙まで!しかも商品も思ってたより状態が良好でとても満足できる買い物ができました!
ハワイ ロレックス 値段 https://www.2bcopy.com/product/product.aspx-id=5196.htm

タイトル
名前
Url
コメント