0

WPF navBar で項目をインデントしようとしています。visualstyleリソースを使用して適切なスタイルに設定する XAML でこれを行うことができます

<dx:DXWindow.Resources>
    <Style x:Key="nestedNavBarItemL1" TargetType="ButtonBase">
        <Setter Property="Margin" Value="20,0,0,0"/>
    </Style>
    <Style x:Key="nestedNavBarItemL2" TargetType="ButtonBase">
        <Setter Property="Margin" Value="40,0,0,0"/>
    </Style>
</dx:DXWindow.Resources>

.
.
<dxnb:NavBarItem Content="Source Group"
       ImageSource="Images/Icons/Group.png" 
       VisualStyle="{StaticResource nestedNavBarItemL1}"/>
.
.

ただし、コントロールが既に作成されている場合は問題ありませんが、次のようなコードを使用してコードを介してコントロールを構築しています

NavBarGroup group1 = new NavBarGroup();
group1.Header = eventItems[i].name;
group1.Tag = eventItems[i].id;

for (int i = 0; i < nodeCount; i++)
{
    NavBarItem item = new NavBarItem();
    item.Content = "Home";
    item.Tag = "Level" + i;
    //item.VisualStyle = ? How do I set VisualStyle="{StaticResource nestedNavBarItemL1}"/>
    group1.Items.Add(item);
}

group1.IsExpanded = false;
navBarControl.Groups.Add(group1);

VisualStyle="{StaticResource nestedNavBarItemL1}"コードで設定するにはどうすればよいですか?

ありがとう、おお

4

2 に答える 2

1

リソースで既にスタイルが定義されている場合は、FindResourceメソッドを使用してそれを取得し、次のように関連するプロパティに割り当てることができます (window はリソースが定義されている場所です)。

Style visualStyle = (Style)window.FindResource("nestedNavBarItemL1");
item.VisualStyle = visualStyle;

そうでない場合は、このコードプロジェクトの記事に示されているように作成できます。

于 2012-08-20T13:53:24.683 に答える
1

app.xaml でスタイルを定義するとApplication.Current.Resources["YourDefinedStyle"] as Style、アプリケーション内でアクセスできます。

元:

item.VisualStyle = Resources["YourStyle"] as Style
于 2012-08-20T13:55:17.367 に答える