2

XAML でアコーディオン コントロールを使用しようとしていますが、既定で使用されている濃い青色の背景を変更できません。同じ問題を抱えているが、解決策が投稿されていない他の数人の人々に出くわしました。これまでに見つけた唯一の答えは、Expression Studio を使用することですが、残念ながら私はそのコピーを所有していません。

以下のデザイナー コードを参照してください。現時点ではそれほど多くはありません。各要素に background プロパティを設定しようとしましたが、どの要素にも結果が得られません。

<Window x:Class="Test.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="289" 
    Width="500" 
    xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Layout.Toolkit">
    <Grid>
        <my:Accordion HorizontalAlignment="Stretch"  VerticalAlignment="Stretch">
            <my:AccordionItem x:Name="item1" Header="Item 1">
                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                </Grid>
            </my:AccordionItem>
            <my:AccordionItem x:Name="item2" Header="Item 2">

            </my:AccordionItem>
            <my:AccordionItem x:Name="item3" Header="Item 3">

            </my:AccordionItem>
        </my:Accordion>        
    </Grid>
</Window>
4

1 に答える 1

2

同じ問題を抱えている人のこのMSDN フォーラム スレッドを見てください。また、このコントロールはプレビュー品質であり、CodePlex によればアルファ リリースと同等であることに注意してください。

上記のリンクから:

重要な部分は、実際の外側のグリッドへのバインディングです。なんらかの理由で、アコーディオン項目は内側のグリッドが伸びる幅/高さを提供していないため、いわば「より高い」ものにバインドする必要があります。


Object reference not set to an instance of an object私はそれをテストしましたが、動作しますが、コンパイルして実行するとデザイナーにエラーが発生します。

<Grid>
    <my:Accordion HorizontalAlignment="Stretch"  VerticalAlignment="Stretch">
        <my:AccordionItem x:Name="item1" Header="Item 1">
            <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" 
                Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
                Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}">
            </Grid>
        </my:AccordionItem>
        <my:AccordionItem x:Name="item2" Header="Item 2">
            <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White"  
                Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
                Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}">
            </Grid>
        </my:AccordionItem>
        <my:AccordionItem x:Name="item3" Header="Item 3">
            <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" 
                Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
                Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}">
            </Grid>
        </my:AccordionItem>
    </my:Accordion>
</Grid>
于 2012-05-17T00:34:14.130 に答える