It sounds as though what you want is some element to be visible when nothing is selected, and appear to be part of the ComboBox, but be invisible when a selection is made.
Most simply, you could just design a UserControl which had your ComboBox (if you're adding your items in code rather than some static XAML markup) and also a TextBlock containing your prompt. Like this:
<Grid>
<ComboBox x:Name="ComboBoxControl"
SelectionChanged="ComboBoxControl_SelectionChanged"
HorizontalAlignment="Left" VerticalAlignment="Top"
MinWidth="{Binding ElementName=UnselectedText, Path=ActualWidth}">
<ComboBoxItem>One</ComboBoxItem>
<ComboBoxItem>Two</ComboBoxItem>
<ComboBoxItem>Three</ComboBoxItem>
</ComboBox>
<TextBlock IsHitTestVisible="False"
x:Name="UnselectedText"
HorizontalAlignment="Left"
Text="Select an option..."
VerticalAlignment="Top" Margin="4"
Padding="0,0,30,0" />
</Grid>
Then, in the code-behind, insert some logic in an event handler:
Private Sub ComboBoxControl_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
If ComboBoxControl.SelectedIndex = -1 Then
UnselectedText.Visibility = Windows.Visibility.Visible
Else
UnselectedText.Visibility = Windows.Visibility.Hidden
End If
End Sub
Setting the IsHitTestVisible="False"
DependencyProperty on the TextBlock lets mouse events through so that you can click on the ComboBox, and setting the visibility to Hidden
in the code-behind keeps the layout of a default ComboBox's appearance from jumping around when the prompt text is hidden.
Naturally, all of this is also possible to do by creating a MyComboBox Custom Control, inherited from ComboBox, with an added "UnselectedPromptProperty" as a Dependency Property. Then the logic to show or hide the "UnselectedPromptProperty" would come from the validation callback on the DP. That's more advanced but it would allow you to propagate non-default style templates down into your control, permitting others to reskin it.