0

我正在尝试在 WPF 导航栏上缩进项目。我可以使用资源在 XAML 中执行此操作并将其设置visualstyle为适当的样式

<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方法来获取它,然后像这样分配给相关属性(窗口是资源定义的位置):

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

如果您不这样做,您可以按照codeproject 文章中所示创建它。

于 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 回答