[英]Binding a string to the tooltip of a button in WPF
我在綁定string
時遇到問題。 當我最大化我的 window 時,按鈕的工具提示應該變為“最小化”,如果它是正常大小,工具提示將“放大”。
這是我的 XAML 代碼:
<Button Command="{Binding MaxWindowCommand}"
CommandParameter="{Binding ElementName=ucControlBar}"
Background="ForestGreen"
ToolTip="{Binding StateMinMax}"
ToolBar.OverflowMode="AsNeeded">
<materialDesign:PackIcon Kind="WindowMaximize" />
</Button>
這是我的代碼隱藏:
public string StateMinMax { get; set; }
if (w != null)
{
if(w.WindowState != WindowState.Maximized)
{
w.WindowState = WindowState.Maximized;
StateMinMax = "min";
}
else
{
w.WindowState = WindowState.Normal;
StateMinMax = "max";
}
}
我希望有人能幫助我。 非常感謝你。
您可以使用設置ToolTip
的樣式。 第一個 setter 將設置默認的ToolTip
Minimize ,而DataTrigger
綁定到包含Window
的WindowState
屬性,該屬性使用RelativeSource
綁定在可視化樹中搜索。 如果WindowState
屬性更改為Maximized
,則觸發器會將ToolTip
相應地更改為Enlarge 。
<Button Command="{Binding MaxWindowCommand}"
CommandParameter="{Binding ElementName=ucControlBar}"
Background="ForestGreen"
ToolBar.OverflowMode="AsNeeded">
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="ToolTip" Value="Minimize"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=WindowState}" Value="{x:Static WindowState.Maximized}">
<Setter Property="ToolTip" Value="Enlarge"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<materialDesign:PackIcon Kind="WindowMaximize"/>
</Button>
這是一個僅限 XAML 的解決方案,因此您不需要StateMinMax
屬性和代碼隱藏。
我在綁定string
時遇到問題。 當我最大化我的 window 按鈕的工具提示應該更改為“最小化”,如果它是正常大小,工具提示將被“放大”。
這是我的 XAML 代碼:
<Button Command="{Binding MaxWindowCommand}"
CommandParameter="{Binding ElementName=ucControlBar}"
Background="ForestGreen"
ToolTip="{Binding StateMinMax}"
ToolBar.OverflowMode="AsNeeded">
<materialDesign:PackIcon Kind="WindowMaximize" />
</Button>
這是我的代碼隱藏:
public string StateMinMax { get; set; }
if (w != null)
{
if(w.WindowState != WindowState.Maximized)
{
w.WindowState = WindowState.Maximized;
StateMinMax = "min";
}
else
{
w.WindowState = WindowState.Normal;
StateMinMax = "max";
}
}
我希望有人能幫助我。 非常感謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.