3
使用UWP(或WPF),我在我的XAML樣式中添加了x:Name。 和Style對x:name完全不起作用。爲什麼?UWP:如何避免Templete控件開發中的樣式名稱(x:Name)?
現在,我正在開發一個模板控件。要使用「SetValue」更改樣式屬性,我必須在我的樣式上添加名稱。然後我添加名稱x:Name =「MyStyleName」,但它會造成問題。
這是一個簡單的示例代碼,其中包含Style x:Name。
<Grid Background="Black" Width="200" Height="200" >
<Grid.Resources>
<Style x:Name="MyStyleName" TargetType="Ellipse">
<Setter Property="Height" Value="100" />
<Setter Property="Width" Value="100" />
<Setter Property="Stroke" Value="Red"/>
</Style>
</Grid.Resources>
<Ellipse x:Name="Circle1" />
<Ellipse x:Name="Circle2" />
</Grid>
,我添加X的主要原因是:在樣式名稱,在模板控制的發展,我想通過名稱來訪問的風格。
var _grid = this.GetTemplateChild(GRID_NAME) as Grid;
if (_grid != null)
{
// change grid margin.
_grid.Margin = new Thickness(0, 5, 0, 0);
// get Style of Grid
var _gridStyle = _grid .Resources[GRID_STYLE_NAME] as Style;
if(_gridStyle != null)
{
// Change Gird Height as STYLE !
_gridStyle.SetValue(FrameworkElement.HeightProperty, 10);
}
}
有沒有什麼好的方法可以避免Style x:Name ??
你的回答,我得到答案,謝謝!我必須添加「StaticResource」 –
也看看我更新的答案,通常它應該如何完成。 :) –