1
我在窗口中創建了一個按鈕。爲了更容易的使用,我想將按鈕轉換爲樣式。WPF - 將按鈕轉換爲樣式
窗口文件
<Button x:Name="btn_CustomButton"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Padding="0,10,0,7"
HorizontalContentAlignment="Stretch"
BorderBrush="{x:Null}"
Background="#FF2E2E2E"
Margin="0,0,0,1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="UIExplorer_64x.png" Margin="10,0,0,0" Stretch="UniformToFill" />
<Label Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,2" FontSize="18" Foreground="#FFD6D6D6" Padding="0" >btn_CustomButton</Label>
</Grid>
</Button>
我嘗試的風格按鈕:
<Style x:Key="NavigationButton" TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="Background" Value="#FF2E2E2E" />
<Setter Property="Padding" Value="0,10,0,7"/>
<Setter Property="Margin" Value="0,0,0,1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Width="{TemplateBinding Width}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="UIExplorer_64x.png" Margin="10,0,0,0" Stretch="UniformToFill" />
<Label Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,2" FontSize="18" Foreground="#FFD6D6D6" Padding="0" >btn_CustomButton</Label>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
的問題是,風格似乎忽略像背景顏色,以及填充某些屬性。
它應該是什麼樣子:
什麼它看起來象:
很難看出差別,但風格實際上忽略了背景色。
而且,我怎麼能發送圖像路徑按鈕,這樣我可以用
<button Style="{StaticResource NavigationButton}"
Content="Text"
ImageSource="someImage.png" />
由於我是新學習WPF的造型,任何幫助表示讚賞:)
控件模板中的某些內容必須使用背景顏色,但您的控件模板會忽略它。嘗試使用ContentTemplate代替;這將使基本按鈕控制模板的東西完好無損,就像您原來的那樣。 –
[使用控件模板創建圖像+文本按鈕?]可能重複(http://stackoverflow.com/questions/1933127/creating-an-imagetext-button-with-a-control-template) – sthotakura
我會刪除' '這就是你的內聯樣式的工作原理。 –
XAMlMAX