tabitem.cs
来自「浏览器端看到树型目录结构,用户可以完整地看到像windows资源管理器一样的效果」· CS 代码 · 共 811 行 · 第 1/2 页
CS
811 行
if (isTab)
{
builtinDefault = new CssCollection();
builtinDefault["background-color"] = "#D0D0D0";
if ((parent != null) && (parent.Style["color"] != null))
{
builtinDefault["color"] = parent.Style["color"];
}
else if ((parent != null) && (parent.ForeColor != Color.Empty))
{
builtinDefault["color"] = ColorTranslator.ToHtml(parent.ForeColor);
}
else
{
builtinDefault["color"] = "#000000";
}
builtinSelected = new CssCollection();
builtinSelected["background-color"] = "#FFFFFF";
}
if (parent != null)
{
if (isTab)
{
globalDefault = parent.TabDefaultStyle;
globalSelected = parent.TabSelectedStyle;
}
else if (isSep)
{
globalDefault = parent.SepDefaultStyle;
globalSelected = parent.SepSelectedStyle;
}
}
if (builtinDefault != null)
{
style.Merge(builtinDefault, true);
}
if (globalDefault != null)
{
style.Merge(globalDefault, true);
}
style.Merge(DefaultStyle, true);
if (Active)
{
if (builtinSelected != null)
{
style.Merge(builtinSelected, true);
}
if (globalSelected != null)
{
style.Merge(globalSelected, true);
}
style.Merge(SelectedStyle, true);
}
return style;
}
}
/// <summary>
/// true if the tab item is in an active state.
/// </summary>
internal virtual bool Active
{
get { return false; }
}
/// <summary>
/// The uplevel tag name for the tab item.
/// </summary>
protected abstract string UpLevelTag
{
get;
}
/// <summary>
/// Adds attributes to the HtmlTextWriter.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
if (AccessKey != String.Empty)
{
writer.AddAttribute("accesskey", AccessKey);
}
if (!Enabled)
{
writer.AddAttribute("disabled", "true");
}
if (TabIndex != 0)
{
writer.AddAttribute("tabindex", TabIndex.ToString());
}
if (ToolTip != String.Empty)
{
writer.AddAttribute("title", ToolTip);
}
}
/// <summary>
/// Writes attributes to the HtmlTextWriter.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
protected override void WriteAttributes(HtmlTextWriter writer)
{
base.WriteAttributes(writer);
if (AccessKey != String.Empty)
{
writer.WriteAttribute("accesskey", AccessKey);
}
if (!Enabled)
{
writer.WriteAttribute("disabled", "true");
}
if (TabIndex != 0)
{
writer.WriteAttribute("tabindex", TabIndex.ToString());
}
if (ToolTip != String.Empty)
{
writer.WriteAttribute("title", ToolTip);
}
}
/// <summary>
/// Writes out TabItem attributes.
/// </summary>
/// <param name="writer">The HtmlTextWriter that receives the markup.</param>
protected virtual void WriteItemAttributes(HtmlTextWriter writer)
{
if (DefaultImageUrl != String.Empty)
writer.WriteAttribute("defaultImageUrl", DefaultImageUrl);
if (HoverImageUrl != String.Empty)
writer.WriteAttribute("hoverImageUrl", HoverImageUrl);
if (SelectedImageUrl != String.Empty)
writer.WriteAttribute("selectedImageUrl", SelectedImageUrl);
string style = DefaultStyle.CssText;
if (style != String.Empty)
writer.WriteAttribute("defaultStyle", style);
style = HoverStyle.CssText;
if (style != String.Empty)
writer.WriteAttribute("hoverStyle", style);
style = SelectedStyle.CssText;
if (style != String.Empty)
writer.WriteAttribute("selectedStyle", style);
}
/// <summary>
/// Renders the item for uplevel browsers.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
protected override void RenderUpLevelPath(HtmlTextWriter writer)
{
writer.WriteBeginTag(TabStrip.TagNamespace + ":" + UpLevelTag);
WriteAttributes(writer);
WriteItemAttributes(writer);
if (Text != String.Empty)
{
writer.Write(HtmlTextWriter.TagRightChar);
writer.Write(Text);
writer.WriteEndTag(TabStrip.TagNamespace + ":" + UpLevelTag);
}
else
{
writer.Write(HtmlTextWriter.SelfClosingChars + HtmlTextWriter.TagRightChar);
}
writer.WriteLine();
}
/// <summary>
/// Renders the image tag.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
/// <param name="imageUrl">The url of the image.</param>
protected virtual void RenderImage(HtmlTextWriter writer, string imageUrl)
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, "absmiddle");
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
/// <summary>
/// Renders the text property.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
/// <param name="text">The text to render.</param>
protected virtual void RenderText(HtmlTextWriter writer, string text)
{
writer.Write(text);
}
/// <summary>
/// Renders contents for downlevel and visual designers.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
private void RenderContents(HtmlTextWriter writer)
{
string imageUrl = CurrentImageUrl;
bool renderTable = ((imageUrl != String.Empty) && (Text != String.Empty));
if (renderTable)
{
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
writer.RenderBeginTag(HtmlTextWriterTag.Table);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, null);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
}
if (imageUrl != String.Empty)
{
RenderImage(writer, imageUrl);
}
if (renderTable)
{
writer.RenderEndTag();
writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, null);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
}
if (Text != String.Empty)
{
RenderText(writer, Text);
}
if (renderTable)
{
writer.RenderEndTag();
writer.RenderEndTag();
writer.RenderEndTag();
}
if ((imageUrl == String.Empty) && (Text == String.Empty))
{
// Neither text nor image was rendered, so render a blank
RenderText(writer, " ");
}
}
/// <summary>
/// Renders content for downlevel browsers.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
protected virtual void DownLevelContent(HtmlTextWriter writer)
{
RenderContents(writer);
}
/// <summary>
/// Renders the item for downlevel browsers.
/// </summary>
/// <param name="htmlWriter">The HtmlTextWriter object that receives the content.</param>
protected override void RenderDownLevelPath(HtmlTextWriter htmlWriter)
{
HtmlInlineWriter writer = new HtmlInlineWriter(htmlWriter);
if (Orientation == Orientation.Vertical)
{
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
}
CurrentStyle.AddAttributesToRender(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, null);
if (!Enabled)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true");
}
if (ToolTip != String.Empty)
{
writer.AddAttribute(HtmlTextWriterAttribute.Title, ToolTip);
}
writer.RenderBeginTag(HtmlTextWriterTag.Td);
DownLevelContent(writer);
writer.RenderEndTag();
writer.AllowNewLine = true;
writer.WriteLine();
if (Orientation == Orientation.Vertical)
{
writer.RenderEndTag();
}
}
/// <summary>
/// Renders content for visual designers.
/// </summary>
/// <param name="writer">The HtmlTextWriter object that receives the content.</param>
protected virtual void DesignerContent(HtmlTextWriter writer)
{
RenderContents(writer);
}
/// <summary>
/// Renders the item for visual designers.
/// </summary>
/// <param name="htmlWriter">The HtmlTextWriter object that receives the content.</param>
protected override void RenderDesignerPath(HtmlTextWriter htmlWriter)
{
HtmlInlineWriter writer = new HtmlInlineWriter(htmlWriter);
if (Orientation == Orientation.Vertical)
{
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
}
CurrentStyle.AddAttributesToRender(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, null);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
DesignerContent(writer);
writer.RenderEndTag();
writer.AllowNewLine = true;
writer.WriteLine();
if (Orientation == Orientation.Vertical)
{
writer.RenderEndTag();
}
}
/// <summary>
/// Loads the item's previously saved view state.
/// </summary>
/// <param name="savedState">An Object that contains the saved view state values for the item.</param>
protected override void LoadViewState(object savedState)
{
if (savedState != null)
{
object[] state = (object[])savedState;
base.LoadViewState(state[0]);
((IStateManager)DefaultStyle).LoadViewState(state[1]);
((IStateManager)HoverStyle).LoadViewState(state[2]);
((IStateManager)SelectedStyle).LoadViewState(state[3]);
}
}
/// <summary>
/// Saves the changes to the item's view state to an object.
/// </summary>
/// <returns>The object that contains the view state changes.</returns>
protected override object SaveViewState()
{
object[] state = new object[]
{
base.SaveViewState(),
((IStateManager)DefaultStyle).SaveViewState(),
((IStateManager)HoverStyle).SaveViewState(),
((IStateManager)SelectedStyle).SaveViewState(),
};
// Check to see if we're really saving anything
foreach (object obj in state)
{
if (obj != null)
{
return state;
}
}
return null;
}
/// <summary>
/// Instructs the item to track changes to its view state.
/// </summary>
protected override void TrackViewState()
{
base.TrackViewState();
((IStateManager)DefaultStyle).TrackViewState();
((IStateManager)HoverStyle).TrackViewState();
((IStateManager)SelectedStyle).TrackViewState();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?