मेरे पास एप्लिकेशन में बहुत सारे पॉपअप हैं (.NET Framework 4, WPF) और मुझे उन सभी को एक शैली सेट करनी है। उदाहरण पॉपअप कि तरह लग रहा है:पॉपअप नियंत्रण के लिए स्टाइल टेम्पलेट कैसे लिखें?
<Popup PopupAnimation="Fade" MinWidth="600" MinHeight="200" Placement="Center" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="True" IsOpen="False">
<Grid Width="Auto" Height="Auto" Background="Gray">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border BorderThickness="2" CornerRadius="8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.RowSpan="2">
<Border.BorderBrush>
<SolidColorBrush Color="Gray"/>
</Border.BorderBrush>
<Border.Background>
<SolidColorBrush Color="White"/>
</Border.Background>
</Border>
<StackPanel Grid.Row="0">
<Label Foreground="Blue" Content="Popup_Title"/>
</StackPanel>
<GroupBox Grid.Row="1" Header="Popup example content">
<StackPanel>
...
</StackPanel>
</GroupBox>
</Grid>
</Popup>
मैं कैसे शैली टेम्पलेट के लिए सीमाओं और पृष्ठभूमि की तरह शैलियों ले जा सकते हैं? मैं टार्गेट टाइप पॉपअप के साथ स्टाइल नहीं लिख सकता और इसे Property="Template"
संशोधित कर सकता हूं क्योंकि पॉपअप कंट्रोल में Property="Template"
नहीं है। तो मैं उन पॉपअप को शैली कैसे लिख सकता हूं?
संपादित करें: सटीक काम कर रहे शैली:
<Style x:Key="PopupContentStyle" TargetType="ContentControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContentControl">
<Grid Width="Auto" Height="Auto" Background="Gray">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border BorderThickness="2" CornerRadius="8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.RowSpan="2">
<Border.BorderBrush>
<SolidColorBrush Color="Gray"/>
</Border.BorderBrush>
<Border.Background>
<SolidColorBrush Color="White"/>
</Border.Background>
</Border>
<StackPanel Grid.Row="0">
<Label Foreground="Blue" Content="Popup_Title"/>
</StackPanel>
<GroupBox Grid.Row="1" Header="Popup example content">
<StackPanel>
<ContentPresenter />
</StackPanel>
</GroupBox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
मुझे इस समाधान को काम करने के लिए कुछ बदलाव जोड़ना पड़ा, लेकिन यह विचार बिल्कुल वही था जो मुझे चाहिए। आपका बहुत बहुत धन्यवाद! – Marta
मुझे इस तरह सामग्री प्रदाता को परिभाषित करना पड़ा, क्योंकि अन्यथा यह समाधान काम करने में विफल रहा। लेकिन विचार खुद ही है जो मुझे चाहिए - धन्यवाद भी! <सामग्री प्रस्तुतकर्ता सामग्री = "{टेम्पलेट बाइंडिंग सामग्री नियंत्रण। सामग्री}" /> –