我正嘗試在WPF中創建一個圖像按鈕。我所做的是在模板綁定中未解決的相對路徑WPF
- 創建一個從Button繼承的用戶控件,並在其中聲明一個應該具有所需圖像的依賴屬性。
- 在資源字典中爲其聲明xaml模板。
- 傳遞該依賴項屬性的相對路徑和完整路徑,完整路徑有效,但相對不完整。
用戶控件類
public class ButtonWithImage : Button
{
public ImageSource ButtonImage
{
get { return (ImageSource)GetValue(ButtonImageProperty); }
set { SetValue(ButtonImageProperty, value); }
}
// Using a DependencyProperty as the backing store for ButtonImage. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ButtonImageProperty =
DependencyProperty.Register("ButtonImage", typeof(ImageSource), typeof(ButtonWithImage));
}
資源字典代碼
<Style x:Key="ButtonWithImageStyle" TargetType="complaintRegister:ButtonWithImage">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="complaintRegister:ButtonWithImage">
<StackPanel>
<Image Source="{Binding ButtonImage, RelativeSource={RelativeSource TemplatedParent}}" Width="50" Height="50"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
XAML
<complaintRegister:ButtonWithImage x:Name="ButtonAdd" Content="Add New Complaint" Style="{StaticResource ButtonWithImageStyle}"
ButtonImage="Resources\Plus.png"
Width="150" Height="75" Margin="10 0" Command="{Binding NewCommand}">
</complaintRegister:ButtonWithImage>
錯誤
它確實顯示在設計模式中的圖像,但在運行時拋出該異常
Cannot locate resource 'resources/plus.png'
我不禁想它正試圖解決「資源/ plus.png」而不是'Resources/Plus.png。
我已經更新了我的問題中的錯誤,請仔細閱讀。它永遠不會運行,但會有例外。 – MegaMind
嗨,你正在談論圖像位置。請閱讀我的編輯。 –
這對我有幫助。謝謝 –