本帖最后由 d454ew32 于 2014-10-21 17:15:52 编辑

解决方案 »

  1.   

    public MainWindow()
        {
            InitializeComponent();
    button1.DataContext = this;
    ContentPresenter1.DataContext = this;}
    这样试试
      

  2.   

    一个textBlock只能在一个地方显示,在A地方显示就不能在B地方显示了
      

  3.   

    可是,具体规则是什么啊,该在哪个地方显示呢。MSDN有没有给个说法呢
      

  4.   

    测试了,确实存在这样的问题,但是,实际上CurrentTextBlock已经绑定到ContentPresenter 上了        private void button1_Click(object sender, RoutedEventArgs e)
            {
                this.DataContext = this;
                this.CurrentTextBlock = new TextBlock() { Name = "textblock1", Background = new SolidColorBrush(Colors.Red), Text = "张三" };
                Console.WriteLine((this.ContentPresenter1.Content as TextBlock).Background);
                Console.WriteLine((this.ContentPresenter1.Content as TextBlock).Text);
            }  
    //输出
    #FFFF0000
    张三把绑定的方法改一下吧    <Grid Name="grid1">
            <Button Name="button1" Click="button1_Click" Margin="246,200,0,0"  Content="{Binding CurrentTextBlock}" ></Button>
            <ContentPresenter  Name="ContentPresenter1" Margin="0,0,167,177" >
                <ContentPresenter.Content>
                    <TextBlock Background="{Binding CurrentTextBlock.Background}" Text="{Binding CurrentTextBlock.Text}"></TextBlock>
                </ContentPresenter.Content>
            </ContentPresenter>
        </Grid>
      

  5.   

    可是,CurrentTextBlock已经绑定到ContentPresenter 上了,为什么其Background、Text等属性,没有正常显示呢?
    我想知道原理啊..............................
      

  6.   

    可是,既然CurrentTextBlock已经绑定到ContentPresenter 上了,为什么其Background、Text等属性,没有正常显示呢?
    我想知道原理啊..............MSDN上面有没有这方面的解释呢?................
      

  7.   

    一个控件(此处泛指Visual类的派生类)只能有一个VisualParent
    想要达到你想的效果,请使用VisualBrush
      

  8.   

    好吧,就算一个控件只能有一个VisualParent,那这个VisualParent又该是谁呢?ContentPresenter?button1?
    有没有MSDN的详细解释呢?