When using ItemsControl ItemsControl.ItemsPanel is set to Canvas, ContenPresenter comes in and break my Canvas properties on the children [WPF]

后端 未结 3 1906
故里飘歌
故里飘歌 2020-12-31 05:07

I am using an ItemsControl where the ItemsPanel is set to Canvas (see this question for more background information). The ItemsControl is performing as I want, and it works

3条回答
  •  误落风尘
    2020-12-31 05:22

    Button Doesn't have a "Canvas" Property, so what you are doing is is making a relative call to the hosting control, however because the item and canvas are in different Templates there is no direct link, because of this the Canvas.Left is meaningless before runtime.

    hence your method can't find a left to set so loses the change.

    However Setters are only implemented at runtime so

     
    

    will only run after the objects have been generated and hence do have a relative relationship.

    Otherwise you can use the margin which does belong to the button object but again is only interpreted at runtime

提交回复
热议问题