簡體   English   中英

如何在WPF中的樣式數據觸發中設置Grid.column值

[英]How to set the Grid.column value in the style datatrigger in WPF

我在行= o和列= 1中有一個網格在單擊按鈕時,我想更改此grid.row = 0和grid.column = 0。 我嘗試通過創建帶有數據觸發器的樣式來設置grod.column = 0,因為這是gris的本地值,並且在樣式屬性中不可用.Grid.column的值未更改。能否請您幫我如何更改xaml中的grid.column值以滿足我的要求。

更改列就像更改附加屬性的值一樣容易。

下面是一個示例,其中ToggleButton根據IsChecked值在第一列和第二列之間移動:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="100" />
    </Grid.ColumnDefinitions>
    <ToggleButton>
        <ToggleButton.Style>
            <Style>
                <!-- <Setter Property="Grid.Column" Value="0" /> optional, see below for explanation -->
                <Style.Triggers>
                    <Trigger Property="ToggleButton.IsChecked" Value="True">
                        <Setter Property="Grid.Column" Value="1" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>
</Grid>

演示:

是否使用DataTrigger

在處理依賴項屬性時,請注意值優先級 ,例如,在本地設置值將使觸發器無用(您將不得不使用另一種方法,例如StoryBoard來覆蓋它):

<ToggleButton Grid.Column="0"> <!-- trigger will not be able to change it -->
...

樣式設置器是設置初始值的正確位置(請參閱上面第一個xaml中的注釋部分)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM