■42147 / inTopicNo.1) |
WPFでコンテナ機能を持ったコントロールの作成 |
□投稿者/ mic (7回)-(2009/10/08(Thu) 16:10:17)
|
分類:[VB.NET/VB2005 以降]
今回コンテナの機能を持ったコントロールを作ろうと奮闘しているのですが、あまり進歩なく停滞しています・・・。
開発言語は.Net 3.5 C# WPFとし、WPFでコントロールを作成しています。
理想としてはWPFから利用できるようになった「Expander」コントロールのようなものを作成しようとしています。
(WPFなのでテンプレートでもいいとは思いますが、せっかくなのでコントロールを作ってみたいです)
今はコンテナ機能?を持ったコントロールの作成はなんとか出来ている気がするのですが、
コンテナがStackPanelなので、コンテナにコントロールを追加してもStackPanelの機能に沿うように決められた場所にしか表示されません。
ExpanderのようにするにはGridでできるのかと思ったのですが、Gridに変えてコンテナにコントロールを追加すると、
ユーザーコントロール全体がそのコンテナに追加したコントロールに置き換わるようになってしまいます。
コンテナ機能を持ったコントロールというのはどのようにすれば作成できるのでしょうか?
WPFのみにかかわらず、何か情報があればそこから作業していきたいと思っています。
よろしくお願いいたします m(_ _)m
:一時、某巨大掲示板でも同様の質問をしましたが情報はあまりなかったです、、、理解できなかっただけかもしれませんが
コントロールをウィンドウに張り付けた側
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:temp="clr-namespace:WpfControlLibrary;assembly=WpfControlLibrary"
Title="Window1" Height="300" Width="300">
<Grid>
<temp:UserControl1 textcontent="unko">
<Button Content="うんこ" />
</temp:UserControl1>
</Grid>
</Window>
ユーザーコントロール側
<StackPanel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="UserControl"
x:Class="WpfControlLibrary.UserControl1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="340" d:DesignHeight="180">
<Grid x:Name="LayoutRoot" Width="340" Height="180">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" >
<TextBlock Text="{Binding Path=textcontent, ElementName=UserControl, Mode=Default}" TextWrapping="Wrap"/>
<Button Content="Button"/>
<UserControl Height="100"/>
</StackPanel>
</Grid>
</StackPanel>
|
|