wpf - 如何在嵌套的ControlTemplate中配置Contentpresenter?

标签 wpf xaml

我有以下代码:

<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type ListBoxItem}">
      <Button>
        <Button.Template>
          <ControlTemplate>
            <DockPanel>
              <Image Source="{...}"/>
              <ContentPresenter .../>
            </DockPanel>               
          </ControlTemplate>
        </Button.Template>
      </Button>
    </ControlTemplate>
  </Setter.Value>
</Setter>

我需要模板内的按钮来实现绑定(bind)。嵌套模板定义外观。

问题: <ListBoxItem Content="Start"/>不适用于上面的代码。我需要类似 root Contentpresenter 的东西,它引用按钮模板内的 Contentpresenter 。我怎样才能做到这一点?

提前致谢!

最佳答案

<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type ListBoxItem}">
      <Button>
        <Button.Template>
          <ControlTemplate>
            <DockPanel>
              <Image Source="{...}"/>
              <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=Content}"/>
            </DockPanel>               
          </ControlTemplate>
        </Button.Template>
      </Button>
    </ControlTemplate>
  </Setter.Value>
</Setter>

关于wpf - 如何在嵌套的ControlTemplate中配置Contentpresenter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886095/

相关文章:

c# - 在 LiveChart 中自定义起始索引

wpf - 在 WPF 中本地化 ContextMenu 项标题

C# WPF - 如何在 ListView 中拥有复选框?

C# WPF 主窗口始终位于桌面前面

javascript - 我可以创建跨浏览器兼容的 silverlight 页面而无需隐藏代码吗?

c# - 将列表绑定(bind)到 UserControl 属性

c# - 我将如何在密码框顶部覆盖灰色单词 'password'?

c# - 在 Caliburn Micro 中的 ViewModel 之间切换

c# - 如何在 Windows Phone 8 中将更多 XAML 页面或更多 XAML.cs 页面添加到一个 XAML 或一个 XAML.cs 文件?

c# - 如何在 Avalonia 中绑定(bind)颜色